擴充卡的資料更新方法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 ,如需轉載請自行聯系原作者