Android高級_第三方框架Xutils

来源:http://www.cnblogs.com/BobGo/archive/2016/06/17/5593703.html
-Advertisement-
Play Games

xutils的功能主要包括有四個部分:(1)佈局視圖關聯;(2)圖片下載與緩存;(3)網路請求;(4)資料庫; 1. 使用xutils進行視圖註入: (1)在控制項聲明上方添加@ViewInject()傳入控制項的資源Id; (2)OnCreate()中使用x.view().inject(),傳入上下文 ...


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=””),否則會在運行時報空指針異常;

(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>對象為查找結果;


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 用類對象作為ArrayAdapter綁定的基本數據類型(和SimpleAdater效果類似) 一般ArrayAdapter綁定的基本數據類型是String,接下來介紹一下類對象作為基本數據類型; 首先,新建一個類News,這個類作為基本的數據類型 接下來先把listView的item的佈局確定下來, ...
  • 最近因為項目需要對聲音進行變聲,所以邊學習邊做,發現音頻的處理思路並不難,但是做起來還是有些繁瑣的(比預期的) 趁著腦子還發熱,趕緊把思路總結一下,記錄下來。 主要講三個部分 1,如何變聲2,安卓實現變聲3,ios實現變聲 1. 要想自己寫一個變聲的函數或者庫出來,談何容易,所以採用了大家普遍採用的 ...
  • 從寫第一篇Swift文章的時候到現在Swift已經從1.2發展到了今天的3.0,這期間由於Swift目前還在發展階段並不能向下相容,因此第一篇文章中的部分代碼在當前的Xcode環境中已經無法運行。在WWDC16上Apple公佈了Swift3.0,從中可以看出Apple對Swift的重視,以及Swif... ...
  • 上篇文章講到《Android 簡訊的備份》,本文主要實現Android 簡訊的還原,即是將一條 佈局文件: 添加代碼: 添加許可權: 運行項目,搞定 ...
  • 7.SurfaceFlinger SurfaceFlinger在前面的篇幅了,多有涉及。 SurfaceFlinger是GUI刷新UI的核心,所以任何關於SurfaceFlinger的改進都會對android UI系統有重大影響。 SurfaceFlinger主要分為4個部分 1)黃油計劃 proj ...
  • 網路編程 網路編程是一種實時更新應用數據的常用手段 網路編程是開發優秀網路應用的前提和基礎 網路基本概念 客戶端(就是手機或者ipad等手持設備上面的APP) 伺服器(遠程伺服器 本地伺服器) 請求(客戶端索要數據的方式) 響應(需要客戶端解析數據) 資料庫(伺服器的數據從哪裡來) HTTP URL ...
  • _locationManager = [[CLLocationManager alloc] init]; //期望的經度 _locationManager.desiredAccuracy = kCLLocationAccuracyBest; //大約變化100米更新一次 _locationManag ...
  • 一、初始化方法:有五種初始化方法,分別是 + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti invocation:(NSInvocation *)invocation repeats:(BOOL)yesOrNo; 使用方法: - (void) ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...