2012-05-01 64 views
0

這是我的列表我想我的問題是當我滾動列表視圖然後複選框(這是這個列表中的項目)自動檢查 前 - 如果我先檢查然後4自動檢查。如何管理列表視圖複選框自動檢查?

我的第一個目標:

1. want to stretch my list to full i will wrap it into Scrollview how 
2. i can prevent it to automatically checked 

<ListView 
android:id="@+id/ListViewProducts" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_column="0" 
android:layout_span="2" 
android:clickable="true" 
android:isScrollContainer="true" 
android:saveEnabled="true" 
android:scrollbarAlwaysDrawVerticalTrack="true" 
android:scrollbarSize="10sp" 
android:scrollbars="vertical" > 
</ListView> 

回答

2

創建你自己的BaseAdapter。

請記住,您所看到的listview中的所有視圖都是臨時的。當你滾動時,它們將被回收。原因是 - 您的列表中可以包含> 9000個元素。因此,您創建視圖的方式必須取決於某種(!)數據。

Here是nince關於如何創建自己的列表的教程。

使第X個複選框取決於列表中的第X個布爾值。我第一次有點困惑,但這是最好的方法。

class MyAdapter extends BaseAdapter{ 

    List<boolean> myCheckBoxes; 

    boolean getItem(int arg0){ 

     return myCheckBoxes.get(arg0); 

    } 

    View getView(int arg0, View arg1, ViewGroup arg2){ 

     ... 
     ...//See article 
     myView.setChecked(getItem(arg0)); 

     ... 
     return myView; 

    } 

而在你的活動

ListView myListView; 
... 
myListView.setAdapter(new MyAdapger(...)); 
+0

肯定,但我的問題開始從這裏現在我想的我使用ListView.getAdapter複選框的狀態()getView(INT位置,NULL,NULL); 找到視圖,但它沒有給我正確的觀點和它的狀態 – Trikaldarshi

+1

@Photon他們不會給你正確的看法,因爲列表視圖是臨時的。要保存關於listview項目的信息,您需要分配一個偵聽器並將其數據保存到另一個數據源(例如數組) – Joe

+0

使您的視圖與某些數據收集「相等」。並從中獲取信息。例如。 isSelected(int position){return myCheckboxes.get(position);} – UnknownJoe

1
  1. 你不能把一個ListView爲滾動視圖,兩個視圖在同一方向滾動將無法很好地工作。只需將列表視圖放置在非滾動佈局(frame-,list-,relativelayout)中即可。
  2. 使用適配器根據要顯示的數據設置每個列表視圖的行視圖。
相關問題