1、 復(fù)用行布局(用已經(jīng)完全消失的布局對(duì)象去替代即將出現(xiàn)的那個(gè)布局對(duì)象)
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供撫遠(yuǎn)企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、H5頁(yè)面制作、小程序制作等業(yè)務(wù)。10年已為撫遠(yuǎn)眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。在自定義MyAdapter(繼承BaseAdapter)適配器時(shí),需重寫getVIew(int position, View convertView, ViewGroup parent)方法,其中的converView方法會(huì)保存那個(gè)已經(jīng)完全消失的布局對(duì)象,因此我們用convertView來(lái)替代即將要?jiǎng)?chuàng)建的inflate
(判斷convertView為空時(shí)創(chuàng)建布局文件,不為空時(shí)直接用convertView來(lái)替代)
實(shí)現(xiàn)代碼:
View inflate = null;
if(convertView==null){
//得到布局轉(zhuǎn)換器
LayoutInflater layoutInflater= getLayoutInflater();
//把布局xml文件轉(zhuǎn)換成布局對(duì)象
inflate = layoutInflater.inflate(R.layout.item,null);
}else{
//用已經(jīng)完全消失的布局對(duì)象去替代即將出現(xiàn)的布局對(duì)象
inflate = convertView;
}
2、去減少控件的查找次數(shù)
2.1 單控件——將TextView位置上調(diào)
實(shí)現(xiàn)代碼:
Viewinflate = null;
TextViewtextView = null;
if(convertView==null){
LayoutInflaterlayoutInflater = getLayoutInflater();
//把布局xml文件轉(zhuǎn)換成布局對(duì)象
inflate= layoutInflater.inflate(R.layout.item, null);
textView= (TextView) inflate.findViewById(R.id.textView1);
//把ViewHolder對(duì)象放到inflate包里面
inflate.setTag(textView);
}else{
//用已經(jīng)完全消失的布局對(duì)象去替代即將出現(xiàn)的布局對(duì)象
inflate= convertView;
//把對(duì)象從inflate的口袋中
textView= inflate.getTag();
}
2.2 多控件——使用ViewHolder:創(chuàng)建對(duì)象ViewHolder,將TextView封裝到新ViewHolder中(放入的是多控件)
實(shí)現(xiàn)代碼:
================================================
classViewHolder{
TextViewtextView;
TextViewtextView2;
}
================================================
Viewinflate = null;
ViewHolderholder = null;
//convertView用來(lái)保存那個(gè)已經(jīng)完全消失的布局對(duì)象
if(convertView==null){
holder= new ViewHolder();
//得到布局轉(zhuǎn)換器
LayoutInflaterlayoutInflater = getLayoutInflater();
//把布局xml文件轉(zhuǎn)換成布局對(duì)象
inflate= layoutInflater.inflate(R.layout.item, null);
holder.textView= (TextView) inflate.findViewById(R.id.textView1);
holder.textView2= (TextView) inflate.findViewById(R.id.textView2);
//把ViewHolder對(duì)象放到inflate包里面
inflate.setTag(holder);
}else{
//用已經(jīng)完全消失的布局對(duì)象去替代即將出現(xiàn)的布局對(duì)象
inflate= convertView;
//把對(duì)象從inflate的口袋中
holder= (ViewHolder) inflate.getTag();
}
3、代碼優(yōu)化
1、創(chuàng)建一個(gè)類,類的屬性就是我們所需的數(shù)據(jù)類型
2、創(chuàng)建一個(gè)容器
3、把所需的數(shù)據(jù)都放到容器中
4、根據(jù)position從容器中取出該行所對(duì)應(yīng)的那個(gè)對(duì)象
5、設(shè)置控件內(nèi)容
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。