xUtils3: краткое введение
xUtils включает в себя orm, http(s), image, view аннотации, но всё ещё остаётся лёгким (251K) и мощным, удобным для расширения.
Использование Gradle для сборки: добавьте следующую зависимость:
implementation 'org.xutils:xutils:3.9.0'
Пример конфигурации запутывания: вы можете скачать aar файл здесь: http://dl.bintray.com/wyouflf/maven/org/xutils/xutils/.
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!-- Необязательно -->
// В методе onCreate приложения инициализируйте
@Override
public void onCreate() {
super.onCreate();
x.Ext.init(this);
x.Ext.setDebug(BuildConfig.DEBUG); // Включить или отключить вывод отладочных сообщений, включение отладки влияет на производительность.
...
}
/**
* 1. Метод должен быть закрытым.
* 2. Форма параметра метода должна соответствовать типу интерфейса Listener.
* 3. Параметр аннотации value поддерживает массив: value={id1, id2, id3}
* 4. Другие параметры см. в описании класса {@link org.xutils.event.annotation.Event}.
**/
@Event(value = R.id.btn_test1,
type = View.OnClickListener.class/*Необязательный параметр, по умолчанию View.OnClickListener.class*/)
private void onTest1Click(View view) {
...
}
Parent test = db.selector(Parent.class)
.where("id", "in", new int[]{1, 3, 6})
.or("age", "<", 29)
.findFirst();
long count = db.selector(Parent.class)
.where("name", "LIKE", "w%")
.and("age", ">", 32)
.count();
List<Parent> testList = db.selector(Parent.class)
.where("id", "between", new String[]{"1", "5"})
.findAll();
List<DbModel> list = db.selector(Child.class)
.where("age", "<", 18)
.groupBy("parentId")
.having(WhereBuilder.b("COUNT(parentId)", ">", 1))
.select("parentId, COUNT(parentId) as childNum")
.findAll();
@Event(value = R.id.btn_test2)
private void onTest2Click(View view) {
RequestParams params = new RequestParams("https://www.baidu.com/s");
// params.setSslSocketFactory(...); // Если требуется настроить SSL
params.addQueryStringParameter("wd", "xUtils");
x.http().get(params, new Callback.CommonCallback<String>() {
@Override
public void onSuccess(String result) {
Toast.makeText(x.app(), result, Toast.LENGTH_LONG).show();
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
Toast.makeText(x.app(), ex.getMessage(), Toast.LENGTH_LONG).show();
}
@Override
public void onCancelled(CancelledException cex) {
Toast.makeText(x.app(), "cancelled", Toast.LENGTH_LONG).show();
} **Определение основного языка текста запроса**
Данный текст написан на языке Java.
**Перевод текста на русский язык**
max-age или expires определяют, будет ли использоваться локальный кэш в методе onCache. // Если сервер не возвращает max-age или expires, то кэш будет сохраняться, пока здесь не будет определена логика возврата false, тогда xUtils запросит новые данные, чтобы заменить их. // // * Если доверять этому кэшу, возвращать true, то больше не будет запрашиваться сеть; // возвращать false — продолжать запрашивать сеть, но в заголовке запроса будут добавлены ETag, Last-Modified и т. д., // если сервер вернёт 304, это означает, что данные не обновлены, загрузка данных не продолжается. // this.result = result; return false; // true: доверять данным кэша, не инициировать сетевой запрос; false: не доверять данным кэша. }
@Override public void onSuccess(JsonDemoResponse result) { // Внимание: если сервер возвращает 304 или onCache выбрал доверие к кэшу, в этот момент result равен null. if (result != null) { this.result = result; } }
@Override public void onError(Throwable ex, boolean isOnCallback) { hasError = true; Toast.makeText(x.app(), ex.getMessage(), Toast.LENGTH_LONG).show(); if (ex instanceof HttpException) { // сетевая ошибка HttpException httpEx = (HttpException) ex; int responseCode = httpEx.getCode(); String responseMsg = httpEx.getMessage(); String errorResult = httpEx.getResult(); // ... } else { // другие ошибки // ... } }
@Override public void onCancelled(CancelledException cex) { Toast.makeText(x.app(), "cancelled", Toast.LENGTH_LONG).show(); }
@Override public void onFinished() { if (!hasError && result != null) { // Успешное получение данных Toast.makeText(x.app(), result, Toast.LENGTH_LONG).show(); } });
### Привязка изображения (дополнительные примеры см. в sample проекте)
```java
x.image().bind(imageView, url, imageOptions);
// assets file
x.image().bind(imageView, "assets://test.gif", imageOptions);
// resources file
x.image().bind(imageView, "res://" + R.minimap.test, imageOptions);
// local file
x.image().bind(imageView, new File("/sdcard/test.gif").toURI().toString(), imageOptions);
x.image().bind(imageView, "/sdcard/test.gif", imageOptions);
x.image().bind(imageView, "file:///sdcard/test.gif", imageOptions);
x.image().bind(imageView, "file:/sdcard/test.gif", imageOptions);
x.image().bind(imageView, url, imageOptions, new Callback.CommonCallback<Drawable>() {...});
x.image().loadDrawable(url, imageOptions, new Callback.CommonCallback<Drawable>() {...});
// Используется для получения файла из кэша
x.image().loadFile(url, imageOptions, new Callback.CommonCallback<File>() {...});
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )