2015-10-14 84 views
-2

我創建了複選框以編程方式爲基礎的編號。 3個任務,3個複選框如何獲得複選框導致Android

佈置的任務的

號:在數據庫中

例如任務3

它將創建這樣的:

任務1 [ ]

任務2 []

任務3 []

[提交]

OR

例如:5個任務,5個複選框

佈置的任務的

號:5

它會創建這個:

任務1 []

任務2 []

任務3 []

任務4 []

任務5 []

[提交]

我想要的是,當用戶檢查並提交時,我想知道哪些任務是che cked。就像任務3和任務4被選中然後提交一樣,顯示信息是任務3並且任務4被檢查。

OR任務1,任務2和任務3進行檢查,然後再提交,顯示消息是任務1,任務2和任務3被選中。怎麼做?

更新: ONCLICK方法

cb.setOnClickListener(new View.OnClickListener() { 

        public void onClick(View v) { 
         if(cb.isChecked()){ 
          list.add(task.getTaskId()); 
          i++; 
         } 

        } 

}); 

的數組爲空。我不知道爲什麼。我把這個條件cb.isChecked(),以便只有檢查的項目包含在數組中。

回答

1

如果複選框有不同的ID,您可以使用ID來確定所選的ID。否則,您可以使用setTag()方法給該複選框添加標籤。點擊後,您可以撥打checkbox.getTag()並檢查它是哪一個。

上的更新評論:

如果您是通過代碼創建它們,你可以給他們生成的ID。爲每個複選框添加一個資源ID,如下所示:

<item type="id" name="checkbox_task_1" /> 

或者給他們一個標籤。所以,當你創建複選框代碼是這樣的:

checkbox.setTag("checkBox1"); 

你可以使用任何你想要的對象,例如一個整數。而在你的onClick方法,你應該有這樣的事情:

String tag = (String) checkbox.getTag(); 
if ("checkBox1".equals(tag)) {...} 

第二次更新:

創造複選框:

for (int i = 0; i < userTasks.size(); i++) { 
    ... 
    checkBox.setTag(i); 
} 

在你的onClick方法:

int tag = (Integer) checkbox.getTag(); 
if (tag == 1) {...} 

NEXT UPDATE - onClick

public void onClick(View v) { 
    CheckBox cb = (CheckBox) v; 
    if(cb.isChecked()) { 
    list.add((Integer) cb.getTag()); 
    } 
} 
+0

但我無法確定id。我基於編號創建了複選框。的任務。 – Ruby

+0

我更新了我的答案。 –

+0

如果您不知道用戶將輸入多少個任務,該怎麼辦?我是否必須像1000件物品一樣確保? – Ruby