final ListView listView = getListView();
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
listView.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() {
@Override
public void onItemCheckedStateChanged(android.view.ActionMode mode, int position, long id, boolean checked) {
RelativeLayout layout = (RelativeLayout) listView.getChildAt(position);
if (checked) {
//layout.setBackgroundColor(Color.parseColor("#c0c0c0"));
// TextView textView = (TextView) layout.findViewById(R.id.title);
Log.d("TAG", String.valueOf(position)+"-----"+listView.getCount());
selectItem.add(String.valueOf(position));
} else {
layout.setBackgroundColor(Color.parseColor("#ffffff"));
Log.d("TAG", String.valueOf(position)+"-----"+layout.toString());
selectItem.remove(String.valueOf(position));
}
}
之前没说清楚 不好意思 其实我的目的就是获得当前的选中项,然后修改它的背景啊、图片等样式。
在adapter内定义你的ViewHolder,把item的layout作为ViewHolder的成员变量,在adapter的getItem方法返回相应position的ViewHolder对象,通过listView.getAdapter().getItem(position)得到item的ViewHolder,也就得到item的layout了,这下就不会有null的情况了。