有没有办法CheckedTextView
在某种组中拥有多个,例如RadioGroup
?所以只会CheckedTextView
同时检查一个。
如果这是不可能CheckedTextView
的,那么在其他 5 个组中只能检查一个TextView
的最有效的编码逻辑方式是什么?CheckedTextView
CheckedTextViews
CheckedTextView
每次按下一个时,我都会检查所有其他人的检查状态并相应地更改它,这看起来并不高效。
有没有办法CheckedTextView
在某种组中拥有多个,例如RadioGroup
?所以只会CheckedTextView
同时检查一个。
如果这是不可能CheckedTextView
的,那么在其他 5 个组中只能检查一个TextView
的最有效的编码逻辑方式是什么?CheckedTextView
CheckedTextViews
CheckedTextView
每次按下一个时,我都会检查所有其他人的检查状态并相应地更改它,这看起来并不高效。
我设法做到这一点,CheckedTextView
以作为某个组的一部分(例如,一次CheckedTextView
只能选择一个)。
//pass view which fired onClick event
//pass an array or other container of checkedTextViews (optional)
void setCheckedState(View v, CheckedTextView[] whichCheckedViews) {
CheckedTextView temp = (CheckedTextView) v;
//first uncheck all views in the arraw
for (CheckedTextView item : whichCheckedViews)
item.setChecked(false);
//detect which checkedTextView initiated onClick event
switch (v.getId()) {
case R.id.checkedTextView_1:
case R.id.checkedTextView_2:
case R.id.checkedTextView_3:
case R.id.checkedTextView_N:
temp.setChecked(true);
break;
default:
break;
}
}
这就像一个魅力。
注意:我没有检查内存消耗,因为我只有 5 个视图。我也没有检查执行时间,因为它在所有测试设备上运行都没有故障。