因为我正在为我的应用程序使用自定义listView适配器,所以会覆盖一些默认方法。当我调用适配器的getItem(position)
方法时会发生此问题。由于此方法被覆盖,因此我查找所选项目的尝试将返回为null。
自定义适配器会覆盖该方法,如下所示:
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
获取所选项目的要求:
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
// retrieve selected items and print them out
ArrayListAdapter adapter = (ArrayListAdapter) Allprojects.this.getListAdapter();
SparseBooleanArray selected = adapter.getSelectedIds();
StringBuilder message = new StringBuilder();
for (int i = 0; i < selected.size(); i++){
if (selected.valueAt(i)) {
String selectedItem = (String) adapter.getItem(selected.keyAt(i));
message.append(selectedItem + "\n");
}
}
Toast.makeText(Allprojects.this, message.toString(), Toast.LENGTH_LONG).show();
// close action mode
mode.finish();
return false;
}
我现在如何覆盖getItem(position)方法,以便获取所选项目。请帮忙。
答案 0 :(得分:3)
由于您使用的是BaseAdapter,因此您必须拥有List(或其他一些Collection)项目,对吧?只需使用
return list.get(position);