Android 无法更改gridview上选中/取消选中项目的颜色
我编写了以下代码:Android 无法更改gridview上选中/取消选中项目的颜色,android,android-listview,android-gridview,Android,Android Listview,Android Gridview,我编写了以下代码: gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { if (position == 0) { gridview.setItemCh
gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (position == 0) {
gridview.setItemChecked(1, false);
gridview.setItemChecked(2, false);
TextView tv = (TextView) view.findViewById(R.id.indian_size);
tv.setBackgroundColor(Color.parseColor("#FF9AD082"));
tv.setTextColor(Color.BLUE);
}
if (position == 1 || position == 2 ) {
gridview.setItemChecked(0, false);
TextView tv = (TextView) view.findViewById(R.id.indian_size);
tv.setBackgroundColor(Color.parseColor("#FF9AD082"));
tv.setTextColor(Color.BLUE);
}
}
});
gridview.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
如果(位置==0){
setItemChecked(1,false);
setItemChecked(2,false);
TextView tv=(TextView)view.findViewById(R.id.indian_size);
tv.setBackgroundColor(Color.parseColor(#FF9AD082”);
tv.setTextColor(Color.BLUE);
}
如果(位置==1 | |位置==2){
gridview.setItemChecked(0,false);
TextView tv=(TextView)view.findViewById(R.id.indian_size);
tv.setBackgroundColor(Color.parseColor(#FF9AD082”);
tv.setTextColor(Color.BLUE);
}
}
});
当我在0
位置单击项目时,它会更改颜色,并且它也适用于1
和2
位置
但是现在我想当我点击position1
和2
时,我需要清除position0的文本颜色和背景颜色,反之亦然
如何实现这一点?通过调用getCheckedItemPositions()
确定是否已检查该项:
如果我选择了位置0
处的项目,并且选择了位置1
处的项目,那么我需要在位置0
处清除项目的颜色,或者在我编写此代码的位置gridview setOnItemClickListener中将其设置为默认值?用if-else语句?
SparseBooleanArray checkedPositions = gridView.getCheckedItemPositions();
if (checkedPositions != null && checkedPositions.get(position)) {
// Position is already checked, un-check it
} else {
// Position is un-checked, check it
}