GetListAdapter 在 Android 中返回 null
GetListAdapter returning null in Android
我有一个扩展 ListActivity 的 activity。在其 onCreate 方法中,我执行以下操作:
ListView listView = (ListView) findViewById(android.R.id.list);
listView.setAdapter(new InteractiveArrayAdapter(this, model));
我为 xml 布局中定义的列表视图小部件设置了自定义适配器。
我的自定义适配器 InterativeArrayAdapter 扩展了 ArrayAdapter。模型是我为管理列表视图项目数据而构建的 class。
我的问题出在扩展 ListActivity 的 activity 中:当我处理按钮点击时,我执行以下操作:
public void onClickCompareButton(View view) {
InteractiveArrayAdapter adapter;
Set<Integer> checkedItems;
Iterator<Integer> it;
Model element;
adapter = (InteractiveArrayAdapter) getListAdapter();
checkedItems = adapter.getCheckedItems();
it = checkedItems.iterator();
int size = checkedItems.size();
for (int i = 0; i < size; i++) {
element = adapter.getItem(it.next());
// TODO
}
}
演员表有问题:
adapter = (InteractiveArrayAdapter) getListAdapter();
适配器获取空值,因此下一行崩溃:
checkedItems = adapter.getCheckedItems();
关于如何解决这个问题有什么想法吗?
问题应该出在您将适配器设置到列表的方式上。
ListView listView = (ListView) findViewById(android.R.id.list);
listView.setAdapter(new InteractiveArrayAdapter(this, model));
由于您扩展了 ListActivity,ListView 应该默认可供您的 Activity 使用。所以你应该试试这个,
setListAdapter(new InteractiveArrayAdapter(this, model));
setListAdapter(adapterObj) - 当您扩展 ListActivity 时可用。
我有一个扩展 ListActivity 的 activity。在其 onCreate 方法中,我执行以下操作:
ListView listView = (ListView) findViewById(android.R.id.list);
listView.setAdapter(new InteractiveArrayAdapter(this, model));
我为 xml 布局中定义的列表视图小部件设置了自定义适配器。
我的自定义适配器 InterativeArrayAdapter 扩展了 ArrayAdapter。模型是我为管理列表视图项目数据而构建的 class。
我的问题出在扩展 ListActivity 的 activity 中:当我处理按钮点击时,我执行以下操作:
public void onClickCompareButton(View view) {
InteractiveArrayAdapter adapter;
Set<Integer> checkedItems;
Iterator<Integer> it;
Model element;
adapter = (InteractiveArrayAdapter) getListAdapter();
checkedItems = adapter.getCheckedItems();
it = checkedItems.iterator();
int size = checkedItems.size();
for (int i = 0; i < size; i++) {
element = adapter.getItem(it.next());
// TODO
}
}
演员表有问题:
adapter = (InteractiveArrayAdapter) getListAdapter();
适配器获取空值,因此下一行崩溃:
checkedItems = adapter.getCheckedItems();
关于如何解决这个问题有什么想法吗?
问题应该出在您将适配器设置到列表的方式上。
ListView listView = (ListView) findViewById(android.R.id.list);
listView.setAdapter(new InteractiveArrayAdapter(this, model));
由于您扩展了 ListActivity,ListView 应该默认可供您的 Activity 使用。所以你应该试试这个,
setListAdapter(new InteractiveArrayAdapter(this, model));
setListAdapter(adapterObj) - 当您扩展 ListActivity 时可用。