使用复选框创建ListView ... Android

时间:2010-01-17 18:39:18

标签: android listview checkbox

我正在尝试创建一个列表视图,每个项目旁边都有复选框。 (我正在遵循安卓书中的代码),但是我不能让它工作,每次我运行它都会崩溃。因为我是这个Android工作人员的新手,我不知道该怎么做让它工作,任何帮助表示赞赏。代码如下。 *我已经在list和list_item的名称中创建了两个布局文件。 主要活动的代码:

public class ListDemoActivity extends ListActivity {
    /** Called when the activity is first created. */
    String[] listItems = {"exploring", "android","list", "activities"};
    private SimpleCursorAdapter adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.lists);
        //setListAdapter(new ArrayAdapter(this,android.R.layout.simple_list_item_1, listItems));        

        //setContentView(R.layout.lists);
        Cursor c = getContentResolver().query(People.CONTENT_URI, null, null, null, null);
        startManagingCursor(c);
        String[] cols = new String[]{People.NAME};
        int[] names = new int[]{R.id.row_tv};
        adapter = new SimpleCursorAdapter(this,R.layout.list_item,c,cols,names);
        this.setListAdapter(adapter);
    }
}

列表文件内容:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout 
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content">

     <LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

          <ListView 
            android:id="@android:id/list"
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1"
            android:stackFromBottom="true"
            android:transcriptMode="normal"/>
     </LinearLayout>

     <LinearLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

           <Button 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Submit Selection"/>
      </LinearLayout>
</LinearLayout>

和list_item文件内容:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <CheckBox 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/row_chbox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <TextView 
        android:id="@+id/row_tv" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</LinearLayout>

1 个答案:

答案 0 :(得分:0)

我正在阅读同一本书(Apress Android 2 Pro,源代码位于http://www.apress.com/book/downloadfile/4529 - 示例/ Ch4 / Listing4-17)

我发现当我将它复制/粘贴到eclipse项目中时,由于我没有在粘贴的源文件顶部设置包名称这个简单的原因,它无法正常工作。

尝试推杆:

包asdf.adsf;

...(使用您的实际包名;-),在java文件的顶部,也许这会有所帮助。问题是它没有使用项目特定的“R”资源类。