Android進階_第三方架構Xutils

來源:互聯網
上載者:User

標籤:

xutils的功能主要包括有四個部分:(1)布局視圖關聯;(2)圖片下載與緩衝;(3)網路請求;(4)資料庫;

1. 使用xutils進行視圖注入:

(1)在控制項聲明上方添加@ViewInject()傳入控制項的資源Id;

(2)OnCreate()中使用x.view().inject(),傳入內容物件即可;

(3)設值點擊事件:

  (3-1)自訂點擊事件方法;存取權限為私人private void,傳入View參數;

  (3-2)在方法上方加入註解@Event()傳入控制項的資源Id;

      注意:如果給多個控制項設定在同一個點擊事件中,在@Event()中傳入int數組,數組中為不同的控制項資源Id即可;

  (3-3)在@Event()中傳入第二個參數為事件類型,預設type=OnClickListener.class,可以修改為type=AdapterView.OnItemClickListener.class;

3.網狀圖片下載:

(1)添加網路存取權限,讀、寫外存許可權;

(2)聲明並執行個體化ImageView控制項;

(3)在Activity或者Application的onCreate()中初始化xutils網路請求:調用x.Ext.init(getApplication());

       (3-1)在繼承Application的自訂類中onCreate()使用:

       (3-2)onTerminate(),在程式退出時調用此方法;

       (3-3)onLowMemeory(),在程式運行記憶體不足時調用此方法;

(4)設定圖片參數:

  (4-1)建立ImageOptions.Builder對象圖片參數建立類,分別調用一下方法;

  (4-2)setConfig(Bitmap.Config.RGB_565)設定圖片參數;

  (4-3)setUseMemCache(true)設定是否圖片緩衝;  注意:此處是3g緩衝功能;

  (4-4)setRadius(10)設定圖片圓角;  注意:慎用,是對圖片的處理,不是直接操作ImageView;

  (4-5)setLoadingDrawableId()設定載入時的圖片資源Id;

  (4-6)setFailureDrawableId()設定圖片下載失敗時的顯示資源Id;

  (4-7)setIgnoreGif()設定是否忽略GIF格式的圖片;false為動態顯示;

  (4-8)ImageOptions.Builder對象調用build(),返回ImageOptions對象,啟動建立的圖片參數對象;

(5)啟動圖片下載,調用x.image().bind()傳入兩個或三個參數:

    參數1:要顯示的ImageView控制項;

    參數2:圖片下載路徑;

    參數3:(可選)ImageOptions對象的圖片參數;

    ImageView載入圖片過程:最開始會從記憶體裡載入圖片,如果找到圖片就會直接返回圖片,如果沒有就會從硬碟緩衝裡面去取圖片,如果硬碟緩衝還沒有就會從網路載入圖片;從網路載入圖片,會存一份在記憶體中,同時存一份在外存SDcard中;

4.網路請求

(1)get下載請求:

  (1-1)添加網路存取權限,讀、寫外存許可權;

  (1-2)佈建要求參數:建立RequestParams對象,傳入網路下載路徑;

  (1-3)啟動下載資料:x.http().get(),傳入兩個參數,返回Callback.Cancelable對象:

              參數1:RequestParams對象;

              參數2:實現Callback.CommonCallback<String>介面的對象;

  (1-4)實現Callback.CommonCallback<String>介面:重寫四個方法:

              方法1:onSuccess(String result):下載成功之後調用此方法;

              方法2:onError():下載失敗時調用此方法;

              方法3:onCancelled():取消下載時調用此方法;

              方法4:onFinished():下載結束時調用此方法;

  (1-5)在onDestroy()中,判斷Cancelable對象不為空白,而且可以取消時,取消網路下載任務:Cancelable對象調用cancel()即可;

(2)post上傳請求:

  (2-1)資訊清單檔中添加網路存取權限,讀、寫外存許可權;

  (2-2)佈建要求參數:建立RequestParams對象,傳入網路上傳路徑;

  (2-3)RequestParams對象調用addBodyParameter(),傳入索引值對形式的資料;

  (2-4)發送請求:x.http().post(),傳入兩個參數,返回Callback.Cancelable對象:

              參數1:RequestParams對象;

              參數2:回調監聽實現Callback.CommonCallback<String>介面,在該實現該介面的類中重寫四個方法:

                     方法1:onSuccess():上傳成功時回調此方法;

                     方法2:onError():上傳失敗時回調此方法;

                     方法3:onCancelled():上傳取消時回調此方法;

                     方法4:onFinished():上傳結束時回調此方法;

(3)upload上傳檔案:在RequestParams對象中,建立上傳檔案路徑,以索引值對的形式放入RequestParams對象調用addBodyParameter()中;其他地方與上傳資料相同;

(4)download下載檔案

  (4-1)使用download包下的項目工具;

  (4-2)建立檔案下載路徑:Environment對象調用getExternalStorageDirectory().getAbsolutePath()得到絕對路徑;

  (4-3)DownloadManager對象調用getInstance()得到DownloadManager對象;

  (4-4)DownloadManager對象調用startDownload(),傳入六個參數:

    參數1:下載路徑;

    參數2:儲存標記;

    參數3:檔案路徑;

    參數4:是否支援斷點續傳;

    參數5:是否支援重新命名;

    參數6:null空參;

5. 資料庫功能:可以設定增刪改查,資料庫資訊以Module形式儲存;

(1)建立JavaBean儲存資料庫中的一張表資訊;

   在當前JavaBean前加入註解:@TABLE(),傳入name=””,作為表名;

   在JavaBean中的屬性前加入註解:@Column(),傳入id=””作為欄位Id,傳入name=””作為欄位名;

    注意:在資料庫對應的JavaBean中必須有id屬性,綁定註解為@Column(isId=true, name=””),否則會在運行時報null 指標異常;

(2)在Activity中設定資料庫資訊:

       (2-1)建立DbManager.DaoConfig對象;

       (2-2)setDbName(),傳入資料庫名;

       (2-3)setDbOpenListener(),傳入實現DbManager.DbOpenListener介面的對象,重寫onDbOpened()開啟資料;

       (2-4)setDbUpgradeListener(),傳入實現DbManager.DbUpgradeListener介面的對象,重寫onDbUpgrade()在更新資料庫時使用;

(3)在需要操作資料庫的地方進行增刪改查操作:

       (3-1)增:

    建立JavaBean對象,設定資料;使用x.getDb()傳入建立的DbManager.DaoConfig對象,之後調用save(),傳入JavaBean對象;

       (3-2)刪:

    1)刪除整張表:x.getDb()傳入建立的DbManager.DaoConfig對象,之後調用delete(),傳入JavaBean.class;

    2)根據Id刪除單條記錄:x.getDb()傳入建立的DbManager.DaoConfig對象,之後調用deleteById(),傳入兩個參數:JavaBean.class和要刪除記錄的Id;

    3)根據條件刪除單條記錄:x.getDb()傳入建立的DbManager.DaoConfig對象,之後調用delete(),傳入兩個參數:JavaBean.class和WhereBuilder.b().and().or().exo()等資料可以傳入的條件參數;

       (3-3)改:

    1)根據Id修改單條記錄:x.getDb()傳入建立的DbManager.DaoConfig對象,之後調用update(),傳入兩個以上參數:建立的JavaBean對象和要修改的欄位名;

    2)根據條件修改記錄:x.getDb()傳入建立的DbManager.DaoConfig對象,之後調用update(),傳入三個以上參數:JavaBean.class, WhereBuilder.b()傳入條件參數,儲存修改後的索引值對應的KeyValue對象;

       (3-4)查:

    x. getDb()傳入建立的DbManager.DaoConfig對象,之後調用selector(),傳入JavaBean.class參數,返回Selector<JavaBean>對象;之後根據該對象調用where()傳入whereBuilder.b()條件參數,之後調用findAll()開始尋找,返回List<JavaBean>對象為尋找結果;

Android進階_第三方架構Xutils

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.