2012-09-29 43 views
0

我知道圍繞這個話題還有很多其他線程,但是他們沒有一個似乎與我的場景一起工作,我無法讓我的列表視圖與他們的代碼一起工作。基本上,我使用SimpleCursorAdapter來從數據庫中填充項目。每個listview行使用一個由複選框和一行簡單文本組成的自定義佈局。如何檢測複選框上的點擊?我知道我需要使用OnItemClickListener,但我不知道如何將它合併到我的代碼中。這是我的代碼:檢測點擊自定義ListView佈局中的複選框?

remindersCursorAdapter = new SimpleCursorAdapter(this, 
         R.xml.view_reminders_item_layout, 
         remindersCursor, new String [] { RemindersDAO.NAME }, 
         new int[] { R.id.view_reminders_item_text }); 

viewRemindersListView.setAdapter(remindersCursorAdapter); 

R.xml.view_reminders_item_layout是自定義列表視圖佈局文件。如何從該文件捕獲複選框併爲其設置點擊偵聽器?感謝你的幫助!

+0

您的佈局應該位於'/ res/layout'文件夾中,而不是'/ res/xml'文件夾。但是,要在適配器中正確使用僅CheckBox的OnClickListener,您必須編寫一個自定義適配器。 – Sam

回答

0

如果您想在單擊某個項目時選中該複選框,可以通過在onItemClick方法中設置複選框的選中狀態來執行此操作。

@Override 
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { 

     // now get the checkbox view. Then set the checked status. 
     CheckBox checkbox = (CheckBox) view.findViewById(R.id.check_box); 
     checkBox.setChecked(!checkbox.isChecked()); 
    } 

如果您只想檢測點擊複選框,然後在xml中設置焦點爲true。 //在您的自定義列表視圖項中。它需要當前的視圖焦點。

 <Checkbox> 
      android:focusable="true" 
     </Checkbox> 
+0

嘿,謝謝你的回覆!我其實只想檢測點擊複選框,而不是整個列表視圖行。我怎麼做? – NewGradDev

+0

然後在xml中設置可複選框爲true。它會工作。 – knvarma

+0

你能解釋一下代碼嗎?我是Android開發新手,不知道如何執行您的建議。謝謝! – NewGradDev