2010-01-17 87 views
0

我想创建一个列表视图,每个项目旁边都有复选框。 (我正在遵循android的代码),但是我无法使它工作,每当我运行它时,它都会崩溃。因为我对这个android工作人员很新,我不知道该怎么做才能使它工作,任何帮助表示赞赏。代码如下。 *我创建了两个名为list和list_item的布局文件。 为主要活动代码:用复选框创建ListView ... Android

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> 
+0

我无法发布xml文件:( – deewangan 2010-01-17 19:00:24

+0

您是否在清单中启用了android.permission.READ_CONTACTS? – RickNotFred 2010-01-17 20:03:41

回答

0

我读同一本书(Apress出版的Android 2 Pro,源代码http://www.apress.com/book/downloadfile/4529 - example/Ch4/Listing4-17)

我发现当我复制/粘贴到eclipse项目中时,它没有工作,原因很简单,我没有在粘贴的源文件的顶部设置包名称。

试穿:

package asdf.adsf;

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