【发布时间】:2012-12-11 22:11:23
【问题描述】:
我在 Android 中有一个对话框,我使用这个文件作为布局:
<?xml version="1.0" encoding="utf-8"?> <ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</ListView>
在Activity中我需要给这个ListView添加一个Adapter,我有这个:
@Override
protected Dialog onCreateDialog(int id) {
switch(id){
case ADDPLAYERDIALOG:{
Dialog d = new Dialog(this);
d.setContentView(R.layout.training_dialog);
ListView lv = (ListView) d.getCurrentFocus().getRootView();
ListAdapter adapter = new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_list_item_1, createNamesList());
lv.setAdapter(adapter);
return d;
}
}
return super.onCreateDialog(id);
}
我在这里得到一个 NullPointerException:
ListView lv = (ListView) d.getCurrentFocus().getRootView();
我没有这个 ListView 小部件的 id,因为它是一个布局 XML 文件,我不能只写 lv = d.findViewById(R.id.listview);
我该如何解决这个问题?
【问题讨论】:
-
你真的试过给它一个id吗?我不明白为什么它不应该工作。