Dal*_*ngh 2 android android-listview onitemclicklistener
我在使用Base Adapter的列表中使用自定义复选框.
问题是当我单击复选框以取消选中时,其他复选框自动取消选中.
假设我单击0位置的复选框,然后另一个具有第5位置的复选框将自动取消选中.
public View getView( int position, View convertView, ViewGroup parent) {
final ViewHolder holder = new ViewHolder();
if (convertView == null) {
convertView = mInflater.inflate(R.layout.socket_layer, null);
}
holder.checkBox = (ImageView) convertView.findViewById(R.id.checkBox_SocketFilter);
holder.filter_name=(TextView)convertView.findViewById(R.id.filter_name);
holder.filter_name.setText(rowItems.get(position));
holder.checkBox.setTag(position);
holder.onoff.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = (Integer) v.getTag();
if(!selectedItems.get(position)){
selectedItems.put(position,true);
if(PrefUtils.socketCheck[position].equals(true))
{
holder.onoff.setImageResource(R.drawable.offf);
PrefUtils.socketCheck[position]=false;
selectedItems.delete(position);
}
else if(PrefUtils.socketCheck[position].equals(false)){
holder.onoff.setImageResource(R.drawable.onnn);
PrefUtils.socketCheck[position]=true;
selectedItems.delete(position);
}
}else{
selectedItems.delete(position);
}
}
});
convertView.setTag(holder);
}
else {
holder = (ViewHolder) convertView.getTag();
}
Run Code Online (Sandbox Code Playgroud)
请帮我.
修改你的代码这样的事情.
在设置单击侦听器之前,在onOff按钮中将位置添加为标记
holder.onoff.setTag(position);
并在 onClick()
int position = (Integer) v.getTag();
然后在里面使用这个位置变量onClick()进行操作.