如何使用自己的ArrayAdapter从listview中删除项目?

时间:2016-06-08 13:58:04

标签: android listview android-arrayadapter

我有问题,我想从ArrayList中删除一行frow listView和这个元素。

这是我的新ArrayAdapter

private ExpenditureAdapter adapter = null;

我使用以下方法添加数据:

adapter = new ExpenditureAdapter(this,R.layout.activity_show_list,addExpenditure.getExpidentures());
        setListAdapter(adapter);

它可以正常运行,但我想创建OnItemClickListener并使用它来删除listViewArrayList<Expenditure>中的数据,但该怎么做?

我的努力:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                addExpenditure.getExpidentures().remove();
            }
        });

但是它不起作用。如何获取索引删除它?

2 个答案:

答案 0 :(得分:2)

试试这个

 YourListView.setOnItemClickListener(new OnItemClickListener()
   {
      @Override
      public void onItemClick(AdapterView<?> adapter, View v, int position,
            long arg3) 
      {
              YourArrayList.remove(position);
            YourArrayAdapter.notifyDataSetChanged();
      }
   });

答案 1 :(得分:0)

你几乎让它发挥作用,改变你的听众:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
     @Override
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
         addExpenditure.getExpidentures().remove(position);
         parent.notifyDataSetChanged();
     }
});

基本上,如果要更改适配器(您的ArrayList)的基础数据,则需要通知适配器,以便相应地更新列表。这将删除该项目,然后重新绘制列表。