如何管理列表视图复选框自动检查?

时间:2012-05-01 07:16:39

标签: android checkbox android-listview scrollview

这是我想要的列表我的问题是当我滚动列表视图时,会自动检查复选框(此列表中的项目) 例如 - 如果我先检查,则自动检查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>

5 个答案:

答案 0 :(得分:2)

创建自己的BaseAdapter。

请注意,您看到的列表视图中的所有视图都是临时的。当你滚动它们时它们将被回收。原因是 - 您的列表中可以包含&gt; 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(...));

答案 1 :(得分:1)

  1. 您无法将列表视图放入滚动视图中,同一方向滚动的两个视图将无法正常工作。只需将listview放在非滚动布局中(frame-,list-,relativelayout)。
  2. 使用适配器根据要显示的数据设置每个列表视图的行视图。

答案 2 :(得分:1)

  1. ListView已经扩展了ScrollView,并且不需要另外一个来围绕它。

  2. 尝试查看此post on creating custom listView items。你可以在其中实现一个复选框,并且make有android:checked="false"

答案 3 :(得分:1)

ListVew已经扩展了ScrollView,无需在ListView上实现它

对于AutoCheck,请点击以下链接:

Check box checked Automatically in listview when scrolling the list.

答案 4 :(得分:1)

没有必要在listview中实现scrollview becoz它已经扩展到scrollview。 我认为你的listview无法正确处理物品的回收。所以要解决这个问题,请看下面的链接。

Getting an issue while checking the dynamically generated checkbox through list view