如何从自定义基本适配器中删除项目?

幸运的路克 :

我正在扩展BaseAdapter以创建自定义listview行。我有上下文菜单,每当用户按住该行时就会打开,并提示他是否要删除它。但是,如何删除行?哈希图仅是测试数据。

private MyListAdapter myListAdapter;
private ArrayList<HashMap<String, String>> items;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    items = new ArrayList<HashMap<String,String>>();
    HashMap<String, String> map1 = new HashMap<String, String>();
    map1.put("date", "10/09/2011");
    map1.put("distance", "309 km");
    map1.put("duration", "1t 45min");
    items.add(map1);

    myListAdapter = new MyListAdapter(this, items);
    setListAdapter(myListAdapter);
    getListView().setOnCreateContextMenuListener(this);
}


private class MyListAdapter extends BaseAdapter {

    private Context context;
    private ArrayList<HashMap<String, String>> items;

    public MyListAdapter(Context context, ArrayList<HashMap<String, String>> items) {
        this.context = context;
        this.items = items;
    }

    @Override
    public int getCount() {
        return items.size();
    }

    @Override
    public Object getItem(int position) {
        return items.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View view = convertView;

        if (view == null) {
            LayoutInflater layoutInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = layoutInflater.inflate(R.layout.row_log, null);
        }

        TextView rowLogOverview = (TextView) view.findViewById(R.id.rowLogOverview);

        HashMap<String, String> item = items.get(position);
        rowLogOverview.setText(item.get("date"));

        return view;
    }
}
关:

您不要从适配器中删除!您从项目中删除!适配器位于您的商品和视图之间。您可以从视图中获得职位,并根据职位可以删除项目。然后,适配器将刷新您的视图。

那意味着你需要做这样的事情

 items.remove(position);
adapter.notifyDataSetChanged()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从自定义基本适配器调用函数

无法更新自定义适配器中的项目

如何在基本适配器中调整自定义布局

如何在Android中自定义适配器?

如何使用自定义项目适配器在ListFragment中实现右滑动?

如何使用自定义适配器将项目自动加载到ListView中

如何使用自定义数组适配器删除自定义列表中的特定列表项(列表行)?

从自定义基本适配器过滤 ListView

具有基本适配器列表项的自定义适配器重复

如何向列表视图中的每个按钮添加一个 onclick,填充自定义数组适配器,从数组中删除该项目并更新它?

自定义适配器,所选项目背景

使用自定义适配器从listview搜索项目

使用自定义适配器获取检查的项目

如何使用自定义基本适配器和sqlite数据库刷新Listview?

动态定义项目时如何创建自定义数组适配器

回到活动中时,使用自定义基本适配器更新Listview吗?

使用自定义数组适配器,ListFragment中的项目不会显示在Listview中

如何使用自定义适配器单击列表视图中的项目

如何将项目动态添加到ListView的自定义适配器

自定义回收器视图适配器 - 如何排除某些项目?

如何自定义适配器以限制要显示的项目

如何使用自定义适配器从 AutoCompleteTextView 获取所选项目

自定义适配器,然后单击ListView中的项目

在自定义列表视图适配器(kotlin)中设置默认突出显示的项目

在自定义ListView适配器中按项目时突出显示效果

listview项目未在自定义适配器的getview方法中显示分配的值

ContextMenu 无法使用自定义适配器从 ListView 中删除行

如何从自定义适配器调用片段功能

自定义ListView适配器中的NullPointerException