2018 09 16 高階控制項ListView

2021-08-28 04:06:09 字數 2138 閱讀 3675

baseadapter:是所有介面卡類的父類,可以對列表項進行最大限度的定製

1.1 自定義介面卡中的方法

*getcount 返回當前listview或者spinner等控制項要顯示多少條資料

*getview 返回的是listview或者spinner每乙個選項的布局,這個方法的作用是把每一行的試**件(layout布局檔案) 解析成乙個view物件

getitem 返回哪一行的物件

getitemid 獲取那一行的物件id

1.2 layoutinflater(布局解析器)

用來把layout布局檔案解析成乙個view物件,不可以new,需要使用系統服務獲得

inflater = (layoutinflater) getsystemservice(context.layout_inflater_service);

listview優化

2.1 使用convertview重用元件

即拖動時被遮住、看不見的控制項,重用它,而非每次建立乙個新的物件

2.2 使用內部類viewholder+convertview.settag()儲存控制項,而不用每次查詢

viewholder(檢視的持有者):專門存放控制項,減少浪費資源

第三方控制項:上拉載入、下拉重新整理控制項

3.1 匯入第三方外掛程式庫

android-pulltorefresh-master.zip

3.2 在布局檔案中使用第三方外掛程式

com.handmark.pulltorefresh.library.pulltorefreshlistview

3.3 自定義介面卡(baseadapter)提供資料

3.4 非同步任務查詢資料(asynctask)

3.4.1 asynctask定義了三種泛型型別 params,progress和result。

params 啟動任務執行的輸入引數,比如http請求的url。

progress 後台任務執行的百分比。

result 後台執行任務最終返回的結果,比如string

3.4.2 非同步載入資料最少要重寫以下這兩個方法

doinbackground(params…) 後台執行,比較耗時的操作都可以放在這裡

onpostexecute(result) 相當於handler 處理ui的方式,在這裡面可以使用在doinbackground 得到的結果處理操作ui

–注:此方法中再通知介面卡和控制項

mybaseadapter.notifydatasetchanged();// 通知介面卡資料已改變

plv_main_plv1.onrefreshcomplete();// 通知控制項資料已經載入完畢

3.5 給pulltorefreshlistview設定相關屬性

plv_main_1.setmode(mode.both);// 設定重新整理模式

mode.both:同時支援上拉下拉

mode.pull_from_start:只支援下拉pulling down

mode.pull_from_end:只支援上拉pulling up

匯入pulltorefresh

1.1 修改library的build.gradle中的sdk版本

//修改前

compilesdkversion 16

buildtoolsversion 「27.0.3」

defaultconfig 

//修改後

compilesdkversion 27

buildtoolsversion "27.0.3"

defaultconfig

1.2 clear project後會報如下錯誤,修改源**:「pulltorefreshwebview」

錯誤: 找不到符號

符號: 方法 floor(float)

位置: 類 floatmath

floatmath.floor -> math.floor
核心:

1、listview控制項、項資源、自定義介面卡準備好

2、向服務端拿資料

3、初始化自定介面卡(獲取視**析器、得到項資源的view控制項、獲取所有的子控制項,給子控制項賦值、返回view)

4、繫結介面卡

c 高階控制項

儲存影象控制項 imagelist控制項 每個單獨的影象可有通過索引值來查詢 獲取影象途徑 image物件 構造方法 fromfile path,true images.add image img 新增影象 imagesize屬性 返回乙個size。可以用size int i,intj 例項化定義影...

高階控制項Spinner

spinner 概念 下拉列表控制項 預設顯示當前選擇的項 第一次展示集合中第一條資料 屬性 android entries array books 展示資料 note 提前知道資料是什麼 android spinnermode dropdown spinner 樣式 dropdown 下拉列表 設...

高階控制項ListView

baseadapter 是所有介面卡類的父類,可以對列表項進行最大限度的定製 1.1 自定義介面卡中的方法 getcount getview getitem getitemid 1.2 layoutinflater 布局解析器 layoutinflater有三種獲得方式,資料中有詳細介紹 用來把la...