Android列表和复选框

前端之家收集整理的这篇文章主要介绍了Android列表和复选框前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个简单的列表,从数据库中填入一个复选框.我需要一个处理所选的所有复选框.当那时按下CLEAR按钮时,我需要所有选中复选框的行ID来删除它们.去做这个 :
我的list.xml文件如下所示:
< LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:orientation="vertical"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent" >

<ListView 
          android:id="@id/android:list"
      android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:layout_weight="1"
          />

<Button 
       android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/clearselected"
        android:text="CLEAR"
        android:clickable ="false"/>

 </LinearLayout>

我的data_entry.xml如下所示:

<LinearLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content">
          <CheckBox 
          android:id="@+id/CheckBox" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content"
          android:layout_x="50px" 
          android:layout_y="22px"></CheckBox>
<TextView android:text="@+id/EntryText"
          android:id="@+id/EntryText"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:textAppearance="?android:attr/textAppearanceLarge"
          android:textColor="@color/blue"/>

 </LinearLayout>

现在:我有list.java文件,我填写列表如下:

private void populateList() {
     Cursor c = db1.getAllList();
      String[] fields = new String[]{db1.get_data()};

       SimpleCursorAdapter cursorAdapter = new 

     ListAdapter adapter = new SimpleCursorAdapter(this,R.layout.data_entry,c,fields,new int[] {R.id.EntryText});


     setListAdapter(adapter);
}

现在我在哪里给heckBox导致其他任何地方的句柄,它会给我一个null异常,因为data_entry包含复选框.另外我需要一个监听器来处理复选框状态?我只是坚持这一点,毫无头绪..

解决方法

为什么不使用标准的ListView并启用CHOICE_MODE_MULTIPLE,而不是自己滚动?
listView.setChoiceMode(CHOICE_MODE_MULTIPLE);
listView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice,fields));

然后,您可以向listView询问已检查的项目.

listView.getCheckedItemPositions();

猜你在找的Android相关文章