1. 程式人生 > 其它 >Android 學習筆記--android——listview總結

Android 學習筆記--android——listview總結

總結listview:
1、建立-->高度match
2、建立-->行佈局
3、找到listview控制元件
4、初始化資料
5、建立介面卡物件 baseAdapter
getview :決定了顯示的樣式以及內容
查詢當前佈局物件裡面的控制元件
行佈局物件.findviewById()
getCount :決定listview的顯示行數
6、設定介面卡

listview優化:

1、用完全消失的佈局物件去替代即將出現的那個佈局物件
複用行佈局物件 convertView

    View inflate = null;
    // convertView用來儲存完全消失的那個佈局物件
    if(convertView==null){
        // 把佈局xml檔案轉換成佈局物件
        // 得到佈局轉換器
        LayoutInflater layoutInflater = getLayoutInflater();
        // 通過佈局轉換器把xml檔案轉換成佈局物件
        inflate = layoutInflater.inflate(R.layout.ssa, null);
    }else{
        //用完全消失的佈局物件去替代即將出現的那個佈局物件
        inflate = convertView;    
    }

2、減少控制元件的查詢次數
//建立一個類,類裡面的屬性就是我們所需的控制元件
//宣告一個ViewHolder物件
ViewHolder holder = null;

        if (convertView == null)
        {   
            holder = new ViewHolder();
            // 把佈局xml檔案轉換成佈局物件
            // 得到佈局轉換器
            LayoutInflater layoutInflater = getLayoutInflater();
            // 通過佈局轉換器把xml檔案轉換成佈局物件
            inflate = layoutInflater.inflate(R.layout.ssa, null);
            //找到控制元件物件,然後儲存到holder物件裡面去
            holder.textView1 = (TextView) inflate.findViewById(R.id.textView1);
            holder.textView2 = (TextView) inflate.findViewById(R.id.textView2);
            //把holder放到inflate包裡面去
            inflate.setTag(holder);
        }
        else
        {   
            // 用完全消失的佈局物件去替代即將出現的那個佈局物件
            inflate = convertView;  
            //從inflate物件的包裡面得到holder
            holder = (ViewHolder) inflate.getTag();
        }

注·:文章來自51CTO部落格作者Samuel_humg