xUtils содержит ORM, HTTP(S), Image и View аннотации. Это мощный и расширяемый инструмент.
Эффективный и стабильный инструмент ORM. Он упрощает поддержку cookie и кэширования при реализации HTTP-интерфейсов.
Основан на UrlConnection.
Благодаря поддержке HTTP(S) и его функций загрузки и кэширования, реализация модуля Image довольно проста.
Модуль View аннотаций содержит всего около 400 строк кода, но он гибкий и поддерживает различные виды View инъекций и событий привязки.
Способ 1:
Через library создайте har пакет и добавьте его в папку libs.
В файле gradle в разделе entry добавьте следующий код:
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
Способ 2:
allprojects{
repositories{
mavenCentral()
}
}
implementation 'io.openharmony.tpc.thirdlib:xUtils3:1.0.0'
Используйте DevEco studio и загрузите SDK. Измените версию classpath в файле build.gradle в проекте на соответствующую версию (версия, используемая в вашем новом проекте IDE).
// В методе 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. Другие параметры описаны в классе org.xutils.event.annotation.Event.
**/
@Event(value = {ResourceTable.Id_btn_viewbind})
private void onTest1Click(Component view) {
...
}
/**
* Пример работы с базой данных.
*/
public class DbAbilitySlice extends AbilitySlice {
@ViewInject(ResourceTable.Id_btn_add)
Button btnDbAdd;
@ViewInject(ResourceTable.Id_btn_del)
Button btnDbDel;
@ViewInject(ResourceTable.Id_btn_update)
Button btnDbUpdate;
@ViewInject(ResourceTable.Id_btn_select)
Button btnDbSelect;
@ViewInject(ResourceTable.Id_text_show)
Text txtShow;
DbManager.DaoConfig daoConfig;
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_db);
x.view().inject(this);
daoConfig = new DbManager.DaoConfig()
.setDbName("testaa.db")
// Если не указать dbDir, по умолчанию будет использоваться частный каталог приложения.
.setDbDir(new File("/sdcard")) // "sdcard" не является наилучшей практикой, здесь это сделано для простоты.
.setDbVersion(2)
.setDbOpenListener(new DbManager.DbOpenListener() {
@Override
public void onDbOpened(DbManager db) {
// Включить WAL для значительного ускорения записи.
// db.getDatabase().enableWriteAheadLogging();
}
})
.setDbUpgradeListener(new DbManager.DbUpgradeListener() {
@Override
public void onUpgrade(DbManager db, int oldVersion, int newVersion) {
// TODO: ...
// db.addColumn(...);
// db.dropTable(...);
// ...
// или
// db.dropDb();
}
});
}
@Event(value = {ResourceTable.Id_btn_add, ResourceTable.Id_btn_del, ResourceTable.Id_btn_update, ResourceTable.Id_btn_select})
private void onTest1Click(Component view) {
if (view.getId() == ResourceTable.Id_btn_add) {
dbSave();
}
if (view.getId() == ResourceTable.Id_btn_del) {
dbDel();
}
if (view.getId() == ResourceTable.Id_btn_update) {
dbUpdate();
}
if (view.getId() == ResourceTable.Id_btn_select) {
dbSelect();
}
}
/**
* Добавление.
*/
private void dbSave() {
try {
btnDbAdd.setText("Добавление");
DbManager db = x.getDb(daoConfig);
ArrayList<ChildInfo> childInfos = new ArrayList<>();
childInfos.add(new ChildInfo("zhangsan"));
childInfos.add(new ChildInfo("lisi"));
``` **childInfos.add(new ChildInfo("wangwu"));**
childInfos.добавить(новый ChildInfo («ванву»));
**childInfos.add(new ChildInfo("zhaoliu"));**
childInfos.добавить(новый ChildInfo («чжаолю»));
**childInfos.add(new ChildInfo("qianqi"));**
childInfos.добавить(новый ChildInfo («цяньци»));
**childInfos.add(new ChildInfo("sunba"));**
childInfos.добавить(новый ChildInfo («суньба»));
**db.save(childInfos);**
db.сохранить(childInfos);
**btnDbAdd.setText("添加成功");**
btnDbAdd.установитьТекст("Добавление успешно");
/**
* 删除
*/
private void dbDel() {
try {
**btnDbDel.setText("删除");**
btnDbDel.установитьТекст("Удаление");
DbManager db = x.getDb(daoConfig);
db.delete(ChildInfo.class);
**btnDbDel.setText("删除成功");**
btnDbDel.установитьТекст("Удаление успешно");
} catch (Exception e) {
}
}
/**
* 修改
*/
private void dbUpdate() {
try {
**btnDbUpdate.setText("修改");**
btnDbUpdate.установитьТекст("Изменение");
DbManager db = x.getDb(daoConfig);
ChildInfo first = db.findFirst(ChildInfo.class);
first.setcName("zhansan2");
db.update(first, "c_name"); //c_name:表中的字段名
**btnDbUpdate.setText("修改成功");**
btnDbUpdate.установитьТекст("Изменение успешно");
} catch (Exception e) {
}
}
/**
* 查询
*/
private void dbSelect() {
try {
**btnDbSelect.setText("查询");**
btnDbSelect.установитьТекст("Запрос");
DbManager db = x.getDb(daoConfig);
String result = "";
// ChildInfo first = db.findFirst(ChildInfo.class);
// List<ChildInfo> all = db.selector(ChildInfo.class).where("id", ">", 0).and("id", "<", 4).findAll();
List<ChildInfo> all = db.selector(ChildInfo.class).findAll();
for (ChildInfo childInfo : all) {
result += childInfo.toString()+"\n";
}
**btnDbSelect.setText("查询成功");**
btnDbSelect.установитьТекст("Успешный запрос");
txtShow.setText("查询结果:"+result);
} catch (Exception e) {
}
}
**@Event(value = {ResourceTable.Id_btn_http_get})**
@Событие(значение = {ResourceTable.Id_btn_http_get})
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();
}
@Override
public void onFinished() {
}
});
}
**x.image().bind(imageView, url, imageOptions, new Callback.CommonCallback<PixelMap>() {...});**
x.image().привязать(imageView, url, imageOptions, новый Callback.CommonCallback<PixelMap>(){...});
## LICENSE
Copyright 2014-2015 wyouflf
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )