天天看點

Android——Adapter

擴充卡的資料更新方法notifyDataSetChanged()隻有在定義Adapter類時可以調用;

使用ViewHolder優化:

(1)建立Holder:

<code>class</code> <code>Holder{</code>

<code>    </code><code>ImageView imagerView;</code>

<code>    </code><code>TextView textView;</code>

<code>    </code><code>.........</code>

<code>}</code>

<code>(</code><code>2</code><code>)</code><code>public</code> <code>View getView(</code><code>int</code> <code>position, View convertView, ViewGroup parent) {   </code>

<code>// TODO Auto-generated method stub   </code>

<code>    </code><code>Holder holder = </code><code>null</code><code>;   </code>

<code>    </code><code>if</code><code>(convertView==</code><code>null</code><code>) {   </code>

<code>        </code><code>convertView=LayoutInflater.from(context).inflate(resource, </code><code>null</code><code>);   </code>

<code>        </code><code>holder=</code><code>new</code> <code>Holder();   </code>

<code>        </code><code>holder.imageView=(ImageView) convertView.findViewById(R.id.imageView);   </code>

<code>        </code><code>holder.textView=(TextView) convertView.findViewById(R.id.textView);    </code>

<code>        </code><code>convertView.setTag(holder);   </code>

<code>    </code><code>}</code><code>else</code><code>{   </code>

<code>        </code><code>holder=(Holder) convertView.getTag();   </code>

<code>    </code><code>}   </code>

<code>    </code><code>holder.imageView.setImageResource(image);   </code>

<code>    </code><code>holder.textView.setText(text)  </code>

(3)View.setTag(Object)和View.getTag():

為View設定附加資料,可以在需要的時候拿來用,在adapter使用是避免了控件的重複執行個體話,算是一種簡單的優化;

本文轉自wauoen51CTO部落格,原文連結:http://blog.51cto.com/7183397/1604340 ,如需轉載請自行聯系原作者

繼續閱讀