我在 android 中使用 ListView,我有一个扩展 ListActivity 的简单类。
每当我将 xml 文件中的 ListView 的名称更改为其他名称时,android:list
我的程序就会崩溃。
这是我的 ListActivity 代码:
private NewExpenseScreenModel mDbAdabter;
String[] items = { "Category", "Month", "Year"};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.statistics);
Spinner spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter adapter = new ArrayAdapter(
this,
android.R.layout.simple_spinner_item,
items);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
mDbAdabter = new NewExpenseScreenModel(this);
populateFields();
}
private void populateFields()
{
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.spending_row, mDbAdabter.getAllCategories());
setListAdapter(adapter);
}
这是我的 xml 文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:padding="10dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:prompt="@string/spinner_title"
/>
<ListView android:id="@+id/android:list" android:layout_height="wrap_content" android:layout_width="match_parent"></ListView>
</LinearLayout>
知道发生了什么.. 我想稍后实现一个 onItemClickedListener 所以我希望能够通过 id 找到 ListView。我真的不明白为什么我不能只更改 id
附加信息:
我还有另一个类,它使用不同的 xml 文件,列表 id="android:list" 但我永远不需要按 id 找到该 listView,所以它不是问题。另一个类使用相同的 xml 文件来描述每一行的布局。
更新:
我设法通过使用findViewById(android.R.id.list);
而不是访问ID,findViewById(R.id.list);
但我仍然不明白为什么它不会让我重命名列表