我正在尝试创建一个列表视图,每个项目旁边都有复选框。 (我正在遵循安卓书中的代码),但是我不能让它工作,每次我运行它都会崩溃。因为我是这个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>
答案 0 :(得分:0)
我正在阅读同一本书(Apress Android 2 Pro,源代码位于http://www.apress.com/book/downloadfile/4529 - 示例/ Ch4 / Listing4-17)
我发现当我将它复制/粘贴到eclipse项目中时,由于我没有在粘贴的源文件顶部设置包名称这个简单的原因,它无法正常工作。
尝试推杆:
包asdf.adsf;
...(使用您的实际包名;-),在java文件的顶部,也许这会有所帮助。问题是它没有使用项目特定的“R”资源类。