android - 删除列表中长单击侦听器上的项目
问题描述
我想从列表中删除项
dataModelAssetDataArrayList =
new ArrayList <>(databaseAssetData.getAssetData());
dataAdapterAssetData = new DataAdapterAssetData(this, dataModelAssetDataArrayList);
public void DeleteItem(){
listViewAssetData.setAdapter(dataAdapterAssetData);
listViewAssetData.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
// setting onItemLongClickListener and passing the position to the function
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
removeItemFromList(position);
return true;
}
// method to remove list item
protected void removeItemFromList(int position) {
final int deletePosition = position;
AlertDialog.Builder alert = new AlertDialog.Builder(
EditViewAssetDataActivity.this);
alert.setTitle("Delete");
alert.setMessage("Do you want delete this item?");
alert.setPositiveButton("YES", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TOD O Auto-generated method stub
// main code on after clicking yes
list.remove(deletePosition);
dataAdapterAssetData.notifyDataSetChanged();
dataAdapterAssetData.notifyDataSetInvalidated();
}
});
alert.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.dismiss();
}
});
alert.show();
}
});
}
解决方案
list.remove(deletePosition);
dataModelAssetDataArrayList.remove(deletePosition); //Must remove before notifyDataSetChanged
dataAdapterAssetData.notifyDataSetChanged();
推荐阅读
- mysql - 具有用户/管理员权限的 MySQL 数据库
- android - SQL 异常:不正确的整数值:SELECT 查询的第 1 行的列 'chatid' 的''
- javascript - After Effects Expression - 如何在合成中访问合成中的图层?
- sql - Convert SQL to Linq statement in MVC view
- html - 从文本中删除边距
- linux - 如何在linux上替换<97>等文件中的不可打印字符
- node.js - 使用 firebase-admin 的 google firebase 的用户注册问题
- java - 从 Spring Boot 应用程序中的多个表中删除数据
- c++ - 如何在 Qt creator 中使用 valgrind 分析器进行静态库项目
- c# - 如何在 C# 中获取新的访问令牌?