我在一個活動中有16個複選框,用戶必須從中選擇8個複選框中的任何一個。
因此,最終用戶將從其中的16箇中選擇2個複選框。
更新:複選框已經存在於xml佈局文件中。因此,我確實可以訪問他們的ID
到目前爲止,我正在考慮實現一個簡單的onCheckedChange偵聽器,並在switch case塊中選擇8個複選框中的任意1個複選框,並取消選擇其中的7個複選框。但是這種方法非常痛苦。
此外,當我需要提取他們中的哪一個被選中時,它會是一個完整的混亂。
那麼,我可以做這兩件事情的最簡單但靈活的方式是什麼?建議,歡迎
感謝從多個複選框中選擇一個複選框並獲取用戶複選框
回答
您可以在陣列中對它們進行分組(爲方便和處理)只有一個CheckBox
在一個時間(類似RadioGroup
)檢查保持和還設置OnClickListener
每一個設置狀態:
CheckBox[] chkArray = new CheckBox[8];
chkArray[0] = (CheckBox) findViewById(R.id.cb1R1);
chkArray[0].setOnClickListener(mListener);
chkArray[1] = (CheckBox) findViewById(R.id.cb2R1); // what id do you have?
chkArray[1].setOnClickListener(mListener);
// so on for the rest of the 8 CheckBoxes
private OnClickListener mListener = new OnClickListener() {
@Override
public void onClick(View v) {
final int checkedId = v.getId();
for (int i = 0; i < chkArray.length; i++) {
final CheckBox current = chkArray[i];
if (current.getId() == checkedId) {
current.setChecked(true);
} else {
current.setChecked(false);
}
}
}
};
@IntelliJAmiya使用* ... if(current.getId()== checkedId){current.setChecked(current.isChecked()); } ... *。 – Luksprog
你的邏輯幫助了我。 –
只給他們簡單的名稱,如list1box1 list1box2 .... list2box1 list2box2 ... 有兩個數組的名字 - list1array - list2array
仍然有你的聽衆一樣,你現在要做的: 在監聽器中,首先執行if語句來檢查被單擊的項是否是list1項或list2,並基於該命令只是簡單地有一個循環遍歷該特定列表中的所有項並檢查/取消選中。
以提取只檢查哪些項目檢查的每個陣列或不
- 1. 選中一個複選框以選擇多個複選框
- 2. 取消多個複選框中的複選框選擇狀態
- 3. 從2列複選框中選擇一個複選框
- 4. 從複選框列表中選擇一個複選框
- 5. 選擇一個複選框,選擇其他複選框
- 6. 從多個主複選框中選擇一個複選框,相應地啓用jquery中的子複選框?
- 7. 所選複選框禁用另一個複選框的選擇
- 8. 選中一個複選框,選中另一個複選框
- 9. 從複選框中選擇多個值
- 10. 從複選框中選擇多個值
- 11. ExtJS 4用複選框標題選擇多個CheckColumn複選框
- 12. 複選框,獲取用戶選擇值
- 13. 當在JavaScript中選擇一個複選框創建複選框
- 14. 從DataGridView中的多行復選框中只選擇一個複選框
- 15. Javascript - 如果選中多個複選框,請選中複選框
- 16. 取消選擇一個複選框
- 17. WPF取消選擇帶複選框的複選框 - 複選框組合框
- 18. 選擇所有複選框由一個複選框不工作
- 19. Datagridview複選框列只允許我選擇一個複選框
- 20. Jquery選中一個複選框時選中所有複選框
- 21. 從複選框中獲取多個值
- 22. 如何在選中多個複選框後禁用複選框?
- 23. 檢查一個複選框,並取消之前的複選框
- 24. 選擇多個複選框,並在Python中獲取值Django
- 25. 存儲複選框值獲取和複選框選擇
- 26. 在qt中選擇多個複選框
- 27. 在cakephp中選擇多個複選框?
- 28. 在gridview中選擇多個複選框
- 29. UncheckAll /勾選複選框時,另一個複選框被選中
- 30. 用單個複選框選擇和取消選中複選框列表
使用兩組'RadioGroup',每一個都會包含8'radioButtons' – Houcine
無線電集團是對於這種情況一個正確的選擇。兩組各有8個單選按鈕的無線電組將完成這項工作! – Gridtestmail
@Houcine&@Gridtestmail感謝您的回覆。我正在使用複選框,並不想使用'RadioGroup'。我知道使用它的方式很簡單。但我只想堅持複選框..現在:D – beerBear