有没有一种方法可以让多个CheckedTextView
出现在类似于RadioGroup
的某个组中?因此,只有一个CheckedTextView
将在同一时间检查。
如果这是不可能的,因为CheckedTextView
是TextView
的子级,那么在其他5组CheckedTextViews
中,只有one 才能检查的最有效的内存编码方法是什么?
每次按下一个CheckedTextView
,我都会检查其他所有CheckedTextView
的检查状态,并相应地更改它,这看上去内存效率不高。
发布于 2014-06-03 00:59:24
我成功地用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个视图。我也没有检查执行时间,因为它在所有测试设备上运行时都没有出现故障。
https://stackoverflow.com/questions/24007606
复制相似问题