我正在使用自定义BaseAdapter在gridview中使用复选框和textview来扩充布局。
public View getView(final int i, View view, ViewGroup viewGroup) {
if(view==null){
view = inflater.inflate(R.layout.view_font_grid_details,null);
}
final TextView tvFontName = (TextView) view.findViewById(R.id.tv_font_detail_name);
final CheckBox ivFontName = (CheckBox) view.findViewById(R.id.checkedImage);
if(!isColor) {
Log.d("fontNames"," "+fonts[i]);
FontUtil.setDrawpTypeFace_(fonts[i],tvFontName);
tvFontName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ivFontName.setVisibility(View.VISIBLE);
ivFontName.setChecked(true);
listener.fontSet(fonts[i]);
}
});
}
}
在每个项目的单击侦听器中,单击时,我使复选框变为可见并选中(复选框,如果在XML声明中默认定义为不可见)。当我点击不同的项目时,我需要做什么,我需要取消选中之前检查过的项目。有没有办法知道以前点击了哪个子视图?
答案 0 :(得分:0)
第1步将点击的商品ID /位置存储在列表/数组中。
第2步当点击任何项目时,只需在列表中循环并将其标记为取消选中。
第3步调用NotifydatasetChanged或notifyItemRangeChanged。