实现ListView的Adapter有多种,此处以SimpleAdapter为例。
我们知道,ListView以Adapter为基础,实现了各个Item的内容。
根据文档,我们可知SimpleAdapter中的getView()负责实现ListView的Item内容,
所以,我们可以利用重新实现SimpleAdapter的getView()方法,在里面绑定按钮事件
public class ListAdapter extends SimpleAdapter{
public GameListAdapter(Context context, List<? extends Map<String, ?>> data,
int resource, String[] from, int[] to) {
super(context, data, resource, from, to);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
Button button = (Button)v.findViewById(R.id.item_button);
button.setOnCheckedChangeListener(new Button.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton button, boolean flag) {
//此处实现单击事件
}
});
return v;
}
}
之后,再以此ListAdapter作为ListView的Adapter即可