#Hais_Android_Utils
#Использование: 1. Создайте собственное приложение Application и унаследуйте его от AppApplication. 2. Создайте собственное приложение BaseActivity и унаследуйте его от AppBaseActivity. 3. В конфигурационном файле UtilConfig в пакете app настройте информацию для всех утилит. 4. После выполнения этих шагов вы сможете использовать все функции Hais_Android_Utils.
#Описание пакетов в библиотеке Этот набор утилит включает в себя app, helper, http, model, sqlite, ui, utils, view. app содержит базовые классы для наследования, такие как AppApplication, AppBaseActivity, AppBaseFragment, AppAdapter, AppBasePopupWindow... helper содержит вспомогательные классы Hais_Android_Utils, которые обычно не используются. http содержит обработку сетевых запросов, включая загрузку изображений, загрузку файлов, сетевые запросы [поддерживает добавление заголовков в POST-запросы]. model содержит упакованные в классы объекты для удобного использования. sqlite содержит базовые функции работы с SQLite. ui содержит классы представления, в настоящее время это только одно окно с крутилкой. util содержит множество утилит, применимых к различным сценариям. view содержит расширения простых элементов управления.
Проект зависит от Gson и okhttp.
[Если у вас есть предложения или вопросы, оставьте комментарий на http://hais.pw]============================================================
1. AppApplication
(1) Объединяет управление активностями и инициализацию утилит. Метод exitApp() используется для выхода из приложения.
(2) Включает отлов ошибок и возможность отправки отловленных ошибок на сервер.
(3) Метод onErrorListener используется для обратного вызова информации об ошибках.
2. AppBaseActivity
Особенности: если ID элемента в XML совпадает с именем переменной в активности, можно использовать переменную без вызова findViewById.
Пример:
Если в XML определен TextView с ID text_hello,
и в активности определена переменная типа TextView с тем же именем text_hello,
то можно использовать text_hello без вызова findViewById.
Эту функцию можно включить или выключить в конфигурационном файле UtilConfig. (1) Свойства
tag свойство: имя активности используется как tag для удобства логирования.
context свойство: текущий контекст активности, удобен для установки слушателей и т.д.
gson свойство: объект Gson для всего приложения.
(2) Методы
loadDialogShow(String text) метод: отображает диалоговое окно с прогрессом, параметр text определяет текстовое сообщение, если параметр null, текстовое сообщение не отображается.
loadDialogDismiss() метод: закрывает диалоговое окно с прогрессом.
AppBaseFragment (1) Свойства tag свойство: получает имя каждого активити как tag для удобства логирования. context свойство: контекст текущего активити, для удобства установки слушателей и т.д. gson свойство: объект Gson для всего приложения.
(2) Методы onCreateView(); возвращает R.layout.main для загрузки интерфейса onInitView(View view); в этом методе выполняется findViewbyId. [Можно использовать вместо findView в активити] onLoadDateToView(View view); этот метод отображает данные после onInitView.
finish(); закрыть текущее активити
popBackStack(); вернуться назад
onBackPressed(); вернуться назад и закрыть текущее активити
loadDialogShow(String text) метод: отображает диалог с текстом, параметр text определяет отображение текста
loadDialogDismiss() метод: закрыть диалог загрузки4. BasePopupWindow
(1) При создании PopupWindow наследуйте BasePopupWindow. (2) В конструкторе PopupWindow вызовите setLayout(Activity activity, int layout). (3) Метод drawEnd вызывается после завершения отрисовки PopupWindow, здесь можно выполнить findViewById и установить слушатели и т.д. (4) Метод showCenter() BasePopupWindow отображает PopupWindow по центру активити. (5) Примечание: из-за ограничений PopupWindow, его нельзя вызывать до завершения отрисовки активити, обычно это происходит в onCreate, а затем при нажатии кнопки и т.д.5. AppAdapter Адаптер, который позволяет сократить количество кода, подробности использования смотрите в демо.
UtilConfig Конфигурация параметров для всего приложения.
1. HTTP-запросы
(1) Обычные запросы (слушатель может быть типа JSONObject, String и т.д.)
Http.get(String url, Map<String, String> params, OnHttpListener<?> listener);
Http.post(String url, Map<String, String> params, OnHttpListener<?> listener);
Http.post(String url, String body, OnHttpListener<?> listener);
...
(2) Запросы с добавлением заголовков
Http.get(String url, Map<String, String> params, Map<String, String> header, OnHttpListener<?> listener);
Http.post(String url, Map<String, String> params, Map<String, String> header, OnHttpListener<?> listener);
...
(3) Другие специальные запросы
Http.post(String url, String body, OnHttpListener<?> listener);
...
2. Загрузка файлов через HTTP
Http.updateFile(String url, Map<String, String> params, File[] files, String[] fileKeys, OnHttpListener<?> listener);
Http.updateFile(String url, Map<String, String> params, File file, String fileKey, OnHttpListener<?> listener);
Http.displayImage(ImageView imageView, String url);
Http.displayImage(ImageView imageView, String url, OnHttpListener<Bitmap> listener);
Http.cacheImage(String url);
Http.cacheImage(String url, OnHttpListener<Bitmap> listener);
Http.getCacheBitmap(String url);
Http.download(String url, String fileDir, OnHttpListener<String> listener);
Http.cancel(String url);
Класс PositionMap:
PositionMap<Fragment> fragmentList;
fragmentList = new PositionMap<>();
fragmentList.add("商品详情", OneFragment.newInstance(1));
fragmentList.add("商品规格", TwoFragment.newInstance(2));
fragmentList.add("商家详情", ThreeFragment.newInstance(3));
fragmentList.getKey(position); // Получение заголовка по позиции
fragmentList.getValue(position); // Получение объекта по позиции
@Id(auto=true) private int id;
@NoDB private int id;
DBUtil.save(u);
DBUtil.findById(User.class, "1");
- (В настоящее время в Activity можно вызвать loadDialogShow для отображения этого элемента управления)## Шестая часть: пакет pw.hais.utils
ApkInfoUtil используется для получения имени пакета, номера версии, имени версии и названия программы текущего APK.
AppInfoUtil используется для получения IMEI-кода системы, MAC-адреса, номера серии процессора, уникального идентификатора пользователя.
AppNetInfoUtil используется для проверки подключения к сети, является ли подключение Wi-Fi, является ли подключение мобильной сетью, включен ли Wi-Fi, включен ли GPS, открытие настроек сети.
AppSystemUtil используется для открытия и установки APK-файла, удаления программы, проверки запущенности службы, остановки службы.
CrashUtil используется для отлова исключений. В AppApplication уже включен по умолчанию.
DownTime. Из-за неисправности встроенной CountDownTimer, был создан этот класс-инструмент. Использование аналогично.
EmptyUtil используется для проверки на пустоту, проверки пустоты строк, списков, массивов, объектов, Map.
GenericsUtils используется для отражения и получения свойств родительского класса. 9.ImageUtil используется для преобразования Drawable в Bitmap, Bitmap в Drawable, Bitmap в Byte[], сохранения изображения на SD-карте, загрузки изображения с SD-карты.
KeyBoardUtil используется для открытия и закрытия виртуальной клавиатуры.
L используется для вывода логов и сообщений Toast. [В момент публикации приложения можно настроить отключение всех логов в классе UtilConfig].
Md5Utils используется для шифрования MD5.
ReaderAssetsUtil используется для получения и чтения данных из папки Assets.
SDCardUtils используется для проверки доступности SD-карты, получения пути к SD-карте, получения оставшегося места на SD-карте, получения пути к системному хранилищу.
SPUtils используется для упрощения работы с SharedPreferences, позволяя сохранять и читать любой объект или список.
ScreenUtil используется для получения высоты экрана, ширины экрана, высоты панели состояния, получения скриншота экрана, получения размера и плотности экрана.
TimeUtil используется для преобразования таймстампов в даты, преобразования временных интервалов на китайском языке, преобразования оставшегося времени в секунды.
UtilConfig используется для настройки всех классов-инструментов.
ViewHolderUtils используется для загрузки представлений и отражения элементов управления, обычно используется в адаптерах. ## 7. Пакет pw.hais.view
ButtonFocus
Расширяет класс Button.Использование похоже на использование Button, но добавляет эффект нажатия кнопки.
Используется в тех случаях, когда установка изображения в качестве фона кнопки приводит к потере эффекта нажатия.2. ImagesFocus
Расширяет класс ImageView
. Использование похоже на использование ImageView
, но добавляет эффект нажатия.
Используется в тех случаях, когда ImageView
используется как кнопка, и при этом теряется эффект нажатия.
StrokeTextView
Расширяет класс TextView
. Использование похоже на использование TextView
, но добавляет обводку текста.
TextIntChangeView
Расширяет класс TextView
. Использование похоже на использование TextView
, но при вызове setChange(100);
значение будет динамически изменяться.
TextHtmlImageView
Расширяет класс TextView
. Использование похоже на использование TextView
, но при вызове setHtml("html строка");
будет автоматически загружено изображение из HTML.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )