xUtil3一共分為view、數據庫、網絡和圖片加載四個模塊。
首先下載jar,并且導入as,添加到庫

然后寫一個類集成application,并且在清單文件中配置權限等等。
public class BaseApplication extends Application { @Override public void onCreate() { super.onCreate(); x.Ext.init(this); }}
寫布局文件,幾乎全是按鈕,線性垂直分布,最后一個顯示圖片的控件。

最后上主程序代碼,各部分都有簡單示例。
public class MainActivity extends AppCompatActivity { @ViewInject(R.id.img_icon) ImageView imgIcon; PRivate DbManager dbManager = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this);//ButterKnifeioc x.view().inject(this);//xUtils createDB(); } private void createDB() { //創建數據庫 DbManager.DaoConfig config = new DbManager.DaoConfig() .setDbName("xutils_db") .setDbDir(Environment.getExternalStorageDirectory()) .setDbVersion(1); dbManager = x.getDb(config); } @OnClick({R.id.btn_db_save, R.id.btn_db_get, R.id.btn_db_get_first, R.id.btn_db_update, R.id.btn_db_delete, R.id.btn_http_utils, R.id.btn_image}) public void onClick(View view) { switch (view.getId()) { case R.id.btn_db_save: dbSave(); break; case R.id.btn_db_get: getAll(); break; case R.id.btn_db_get_first: findFirst(); break; case R.id.btn_db_update: update(); break; case R.id.btn_db_delete: delete(); break; case R.id.btn_http_utils: httpRequest(); break; case R.id.btn_image: loadImage(); break; } } /** * 加載圖片 */ private void loadImage() { //請求地址 final String imgUrl = "http://img1.imgtn.bdimg.com/it/u=1794894692,1423685501&fm=23&gp=0.jpg"; //請求選項 ImageOptions options = new ImageOptions.Builder() .setIgnoreGif(false)//忽略gif .setImageScaleType(ImageView.ScaleType.CENTER_CROP) .setLoadingDrawableId(R.mipmap.ic_launcher)//加載過程中顯示的圖片 .setFailureDrawableId(R.mipmap.ic_launcher)//加載失敗后顯示的圖片 .build(); //回調接口 Callback.CommonCallback<Drawable> callback = new Callback.CommonCallback<Drawable>() { @Override public void onSuccess(Drawable drawable) { } @Override public void onError(Throwable throwable, boolean b) { } @Override public void onCancelled(CancelledException e) { } @Override public void onFinished() { } }; //請求加載 x.image().bind(imgIcon,imgUrl,options,callback); } /** * 網絡請求 */ private void httpRequest() { //請求參數 RequestParams params = new RequestParams("https://www.baidu.com"); //回調接口 Callback.CommonCallback<String> callback = new Callback.CommonCallback<String>() { @Override public void onSuccess(String s) { Log.i("請求到的字符串", s); } @Override public void onError(Throwable throwable, boolean b) { } @Override public void onCancelled(CancelledException e) { } @Override public void onFinished() { } }; x.http().get(params, callback);//發出請求 } /** * 刪 */ private void delete() { try { dbManager.delete(User.class, WhereBuilder.b("id", "=", 2)); Toast.makeText(this, "刪除成功", Toast.LENGTH_SHORT).show(); } catch (DbException e) { e.printStackTrace(); } } /** * 改 */ private void update() { User user = new User(1, "willchan", 37);//修改id為1的數據 try { dbManager.update(user, "name", "age");//修改name和age Toast.makeText(this, "修改成功", Toast.LENGTH_SHORT).show(); } catch (DbException e) { e.printStackTrace(); } } /** * 查一條,按條件查 */ private void findFirst() { try { //User user = dbManager.findFirst(User.class);//查第一條 //帶條件 User user = dbManager.selector(User.class) .where("name", "=", "kalychen") .and("age", ">", 35) .findFirst(); Log.i("查詢到的第一條數據", user.toString()); } catch (DbException e) { e.printStackTrace(); } } /** * 查所有 */ private void getAll() { try { List<User> users = dbManager.findAll(User.class); for (User user : users) { Log.i("查詢到的數據", user.toString()); } } catch (DbException e) { e.printStackTrace(); } } /** * 增 */ private void dbSave() { //創建對象 User user = new User("kalychen", 38); try { //添加數據 dbManager.save(user); Toast.makeText(this, "數據寫入成功", Toast.LENGTH_SHORT).show(); } catch (DbException e) { e.printStackTrace(); } }}View注入的部分很簡單演示了一下,因為我們有ButterKnife.運行結果一切OK。

新聞熱點
疑難解答