在BaseAdapter里面处理单击事件
static final class MyAdapter
extends BaseAdapter
{ /**
override other methods here */ @Override public View
getView(final int position,
View convertView, ViewGroup parent) { ViewHolder
holder; if (convertView
== null)
{ //
inflate the view for row from xml file //
keep a reference to each widget on the row. //
here I only care about the button holder
= new ViewHolder();
holder.mButton
= (Button)convertView.findViewById(R.id.button); convertView.setTag(holder);
}
else {
holder
= (ViewHolder)convertView.getTag(); }
//
redefine the action for the button corresponding to the row holder.mButton.setOnClickListener(new OnClickListener()
{ @Override public void onClick(View
v) { //
do something depending on position performSomeAction(position);
//
mark data as changed MyAdapter.this.notifyDatasetChanged();
}
}
}
static final class ViewHolder
{ //
references to widgets Button
mButton; }
}
|
本文介绍如何在BaseAdapter中为列表项设置点击监听器,通过ViewHolder模式优化性能,并实现根据列表位置执行不同操作及通知数据集变化。
2631

被折叠的 条评论
为什么被折叠?



