Android ViewHolder

 ViewHolder不是Android的開發API,而是一種設計方法,就是設計個靜態類,緩存一下,免得Listview更新的時候,還要從新操做。 java

 @Override
    public View getView(int position, View contextvView, ViewGroup parent) {
        // TODO Auto-generated method stub
        ViewHolder holder;
        if (contextvView == null) {
            // 須要佈局加載器 加載一個視圖文件
            // 加載已經寫好的佈局文件 爲每一個item顯示視圖
            holder = new ViewHolder();//實例化內部類
            contextvView = layoutInflater.inflate(R.layout.listview_item, null);//視圖
            // 經過findview 找到控件 內部類 存貯
            holder.mTime = (TextView) contextvView
                    .findViewById(R.id.item_title);
            holder.mTitle = (TextView) contextvView
                    .findViewById(R.id.textView1);
            contextvView.setTag(holder);// 將view類設置成視圖的tag對象    綁定值到contextvView

        } else {
            holder = (ViewHolder) contextvView.getTag();// 再次查找到佈局中的每一個控件
        }
        String nTime=listdate.get(position).getMtime();
        String nTitle=listdate.get(position).getMtitle();
        holder.mTime.setText(nTime);//初始化控件
        holder.mTitle.setText(nTitle);

        return contextvView;//返回視圖
    }

    // 內部類 存貯findview 找到的控件 暫時存貯控件
    class ViewHolder {
        // 添加屬性
        TextView mTime;
        TextView mTitle;

    }

//     ViewHolder 模式, 效率提升 50% 緩存

相關文章
相關標籤/搜索