如何使用自己的 ArrayAdapter 从列表视图中删除项目?
How to delete item from listview using own ArrayAdapter?
我有问题,我想从 ArrayList 中删除 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();
}
});
但是它没有 work.How 获取索引来删除它?
试试这个
YourListView.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> adapter, View v, int position,
long arg3)
{
YourArrayList.remove(position);
YourArrayAdapter.notifyDataSetChanged();
}
});
你几乎可以正常工作了,把你的监听器改成这样:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
addExpenditure.getExpidentures().remove(position);
parent.notifyDataSetChanged();
}
});
基本上,如果您正在更改适配器(您的 ArrayList)的基础数据,您需要通知适配器以便它可以相应地更新列表。这将删除该项目,然后重新绘制列表。
我有问题,我想从 ArrayList 中删除 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();
}
});
但是它没有 work.How 获取索引来删除它?
试试这个
YourListView.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> adapter, View v, int position,
long arg3)
{
YourArrayList.remove(position);
YourArrayAdapter.notifyDataSetChanged();
}
});
你几乎可以正常工作了,把你的监听器改成这样:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
addExpenditure.getExpidentures().remove(position);
parent.notifyDataSetChanged();
}
});
基本上,如果您正在更改适配器(您的 ArrayList)的基础数据,您需要通知适配器以便它可以相应地更新列表。这将删除该项目,然后重新绘制列表。