2011-12-19 84 views
0

我想在listview的click事件中設置一個複選框。 如何設置正確的複選框?列表視圖中的複選框

這是我的代碼:

listView.setOnItemLongClickListener(new OnItemLongClickListener() 
    { 
     @Override 
     public boolean onItemLongClick(AdapterView<?> adapter, View view, 
       int position, long id) 
     { 
         Checkbox checkbox = ?? 
         checkbox.setChecked(true); 

      return true; 
     } 
    }); 
+0

檢查這一項http://stackoverflow.com/questions/7738527/getting-an-issue-while-checking-the-dynamically-generated-checkbox-through-list/7738854#7738854 –

回答

1

首先,JavaCode活動:

listview.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView parentView, View childView, int position, long id)  
    { 
     CheckBox cb = (CheckBox) childView.findViewById(R.id.file_checkbox); 
     cb.setChecked(true); 
    } 
} 

S第二,不要忘記佈局xml中有關CheckBox的一件事,將xml中的複選框設置爲android:focusable =「false」,否則listview將無法獲得單擊事件。第三,也是最重要的事情,因爲當ListView滾動時,適配器中的getView()將被調用爲未知,複選框將被移動到不被接受,所以在getView()中設置複選框狀態非常重要,這裏是我的例子getView():

if(mFiles[position].isSeleted){ 
    checkbox.setChecked(true); 
} else { 
    checkbox.setChecked(false); 
} 
0

你需要一個定製的適配器基礎列表視圖,你可以從:: Here

1
+2

只包含鏈接的答案是不好的答案。當鏈接脫機時,這變得毫無用處。如果你只是想提供一個鏈接,請改爲發表評論。如果您想發佈實際答案,請總結鏈接中「答案」的內容並指向它以獲取更多信息。除此之外:該網站上的內容非常長。指向回答問題的特定部分。 – 2011-12-19 11:34:13

+0

同意弗蘭克.... – Richa

+0

亞歷克斯我們不是在這裏提供確切的答案,我們在這裏幫助PPL出... – Richa