4

有没有办法CheckedTextView在某种组中拥有多个,例如RadioGroup?所以只会CheckedTextView同时检查一个。

如果这是不可能CheckedTextView的,那么在其他 5 个组中只能检查一个TextView的最有效的编码逻辑方式是什么?CheckedTextViewCheckedTextViews

CheckedTextView每次按下一个时,我都会检查所有其他人的检查状态并相应地更改它,这看起来并不高效。

4

1 回答 1

2

我设法做到这一点,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 个视图。我也没有检查执行时间,因为它在所有测试设备上运行都没有故障。

于 2014-06-03T08:59:24.030 回答