1.getView()界面每顯示一行都會調(diào)用getview()方法
2.初始化數(shù)據(jù)
在getview()
lsitveiw復雜行布局的實現(xiàn)
1.創(chuàng)建行布局文件 Ctrl+N
2.getview()設(shè)置行布局文件
//1.獲得布局轉(zhuǎn)換器
LayoutInflater inflater = getLayoutInflater();
//2.將行布局文件轉(zhuǎn)換為View對象
View layout = inflater.inflate(R.layout.list_item, null);
//3.查找行布局中的控件
TextView tvTitle = (TextView) layout.findViewById(R.id.tv_title);
TextView tvSubTitle = (TextView) layout.findViewById(R.id.tv_subtitle);
return layout;
使用自己創(chuàng)建的適配器對象
1.創(chuàng)建一個類繼承BaseAdapter{重寫四個方法}
2.使用
數(shù)據(jù)封裝
1.創(chuàng)建一個類保存每一行的數(shù)據(jù)
成員變量類型 個數(shù) 取決于 行的控件所要保存的數(shù)據(jù)
創(chuàng)建帶參的構(gòu)造方法 get() set()
2.創(chuàng)建容器保存Data數(shù)據(jù)
ArrayList list=new ArrayList();
3.初始化數(shù)據(jù)
4.getview()獲得每一行的數(shù)據(jù) Data
空指針
錯誤:
(TextView) findViewById(R.id.tv_subtitle);
正確:
(TextView) layout.findViewById(R.id.tv_title);
優(yōu)化
1.復用行布局
只需要創(chuàng)建界面可見最多行的布局對象,其他界面不可見的行,復用界面消失的行布局
convertView:保存即將消失的行布局對象索引
注意:getview()中的變量不要聲明為成員變量
1.//判斷convertView是否為空
View layout =null;
if (convertView==null) {//convertView為空就創(chuàng)建界面可見最多行的布局對象
//獲得布局轉(zhuǎn)換器
LayoutInflater inflater = getLayoutInflater();
//將行布局文件轉(zhuǎn)換為View對象
layout = inflater.inflate(R.layout.list_item, null);
}else {//convertView不為空,說明convertView保存了消失的行布局對象索引
就復用消失的行布局對象
layout=convertView;
}
優(yōu)化二:減少控件查找次數(shù)
實現(xiàn)步驟:
1.創(chuàng)建ViewHolder類:保存查找到的控件的索引 (筆記)
2.保存查找到的控件索引 并且 為布局設(shè)置標簽(保存viewHolder索引)
3.復用的行 只需要從標簽里拿到控件的索引 不需要再次findviewbyid()
查找控件
ListView 數(shù)據(jù)更新
1.對容器進行操作
2.適配器通知ListView更新界面 通過調(diào)用mAdapter.notifyDataSetChanged();
Listveiw行點擊事件
1.普通點擊事件
2.長按點擊事件
行點擊事件失效
1.行布局中放入Button 控件搶占焦點
在搶占焦點的控件中設(shè)置: android:focusable="false"
在最外層布局設(shè)置:
android:descendantFocusability="blocksDescendants" >
1. 為Listview注冊上下文菜單
registerForContextMenu(mListView);
2.設(shè)置長按點擊事件 保存長按行的行號
3.重寫onCreateContextMenu();
4.重寫onContextItemSelected();菜單點擊事件
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。