我有问题,我想从ArrayList中删除一行frow listView和这个元素。
这是我的新ArrayAdapter
private ExpenditureAdapter adapter = null;
我使用以下方法添加数据:
adapter = new ExpenditureAdapter(this,R.layout.activity_show_list,addExpenditure.getExpidentures());
setListAdapter(adapter);
它可以正常运行,但我想创建OnItemClickListener
并使用它来删除listView
和ArrayList<Expenditure>
中的数据,但该怎么做?
我的努力:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
addExpenditure.getExpidentures().remove();
}
});
但是它不起作用。如何获取索引删除它?
答案 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)的基础数据,则需要通知适配器,以便相应地更新列表。这将删除该项目,然后重新绘制列表。