在 Android 中自定義了一個 ListView 布局。使用的下面的代碼:
public class CheckInList extends ListActivity {
...
@Override
public void onCreate(Bundle savedInstanceState) {
...
mAdapter = new ArrayAdapter<String>(this, R.layout.checkinlist_item, R.id.checkinlist_item_text, mNames);
setListAdapter(mAdapter);
...
}
}
checkinlist_item.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/checkinlist_item_bg">
<TextView android:id="@+id/checkinlist_item_text"
style="@style/RegisterText" />
</RelativeView>
如果我使用 android.R.layout.simple_list_item_1 來代替上面的模版,程序可以正常運行。然而當我使用上面的代碼,activity 就會奔潰。上面的程序是在 Android 1.5 上運行的。
為什麼 activity 會崩潰呢?
mAdapter = new ArrayAdapter<String>(this, R.layout.checkinlist_item, R.id.checkinlist_item_text, mNames);
有問題,你應該這樣:
mAdapter = new ArrayAdapter<String>(this, R.layout.checkinlist_item, new String[]{mNames}, new int[]{R.id.checkinlist_item_text});