有没有办法在像 CheckedTextView 这样的组中拥有多个 RadioGroup ?所以只会同时检查一个 CheckedTextView

如果这是不可能的,因为 CheckedTextViewTextView 的 child ,那么在其他 5 个 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 个 View 。我也没有检查执行时间,因为它在所有测试设备上都没有出现故障。

10-08 17:12