我有具有被動態創建在TableRow
CheckBox
一個Button
add_Connection
啓用按鈕。機器人:如果複選框中的TableRow被選中
我想啓用如有CheckBox
被檢查add_Connection
, 當我使用此代碼Button
啓用禁用工作正常,但如果我檢查CB1和CB2按鈕啓用 如果我未選中CB2和CB1仍處於選中它點擊完成後禁用Button
。
這裏
cb: check box
add_connection: Button
cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
add_Connections.setEnabled(isChecked);
}
});
我想你沒有正確管理狀態。您需要跟蹤所有複選框,如果其中任何一個選中或不選中。因爲您取消選擇cb2,上下文僅在該複選框的周圍,因此isChecked == false。你需要一個複選框列表,看看它們是否被選中。按鈕應該做這個檢查,遍歷列表,每當它發現一個複選框被選中時,啓用按鈕並返回。 –
我創造了動態 如果使用3 CB的複選框,CB1,CB2,CB3所有被點擊和他們中的任何兩個未被選中,一個被選中它仍然禁用該按鈕 –
以及肯定的,因爲你做的最後一個動作是你取消選擇複選框並自動觸發回調add_connection.setEnabled(false)。它不知道其他複選框的狀態。剛剛意識到,您需要在複選框回調中不選中按鈕,因爲您從複選框控制按鈕 –