在自定义适配器上设置getItem

时间:2013-09-05 15:31:51

标签: android custom-adapter

因为我正在为我的应用程序使用自定义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)方法,以便获取所选项目。请帮忙。

1 个答案:

答案 0 :(得分:3)

由于您使用的是BaseAdapter,因此您必须拥有List(或其他一些Collection)项目,对吧?只需使用

return list.get(position);