如何使用 onItemLongClick 删除列表视图中的项目?
How to delete an item in the listview using onItemLongClick?
我已经创建了一个 onItemLongClick
,它会在长按 listview
时显示以下内容 alertdialog
。我的代码的问题是,即使我从列表中选择 "Edit" 作为选项,该项目仍将被删除。
我想在单击 "Edit" 时添加意图并在单击 "Delete" 时删除项目,但我不知道如何创建条件语句来执行此操作。
这是我的代码:
MainActivity.java
<-- start of snippet -->
@Override
public boolean onItemLongClick(AdapterView<?> View view, final int position, long id){
Persons selectedPersons = this.list.get(position);
String name = selectedPersons.getName();
final CharSequence[] options = {"Edit", "Delete"};
builder.Items(options, new DialogInterference.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which){
list.remove(position);
adapter.notifyDataSetChanged();
Toast.makeText(MainActivity.this, "Item deleted!", Toast.LENGTH_LONG).show();
}
});
AlertDialog dialog = builder.create();
dialog.show();
return true;
}
<-- end of snippet -->
像这样在你的 onClick 中放置一个 if 条件 -
@Override
public boolean onItemLongClick(AdapterView<?> View view, f final int position, long id){
Persons selectedPersons = this.list.get(position);
String name = selectedPersons.getName();
final CharSequence[] options = {"Edit", "Delete"};
builder.Items(options, new DialogInterference.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which){
if(options[which].equals("Delete") {
list.remove(position);
adapter.notifyDataSetChanged();
Toast.makeText(MainActivity.this, "Item deleted!", Toast.LENGTH_LONG).show();
} else if(options[which].equals("Edit") {
//Do edit
}
}
});
添加列表的alertdialog onItemLongClick() 事件。
像这样的事情:
new AlertDialog.Builder(this)
.setTitle("Are you sure?")
.setMessage("Do you want to delete this MemberClass?")
.setIcon(android.R.drawable.ic_dialog_alert)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
list.remove(position);
Toast.makeText(DeleteMember.this, "Deleted Member", Toast.LENGTH_SHORT).show();
}})
.setNegativeButton(android.R.string.no, null).show();
}
我已经创建了一个 onItemLongClick
,它会在长按 listview
时显示以下内容 alertdialog
。我的代码的问题是,即使我从列表中选择 "Edit" 作为选项,该项目仍将被删除。
我想在单击 "Edit" 时添加意图并在单击 "Delete" 时删除项目,但我不知道如何创建条件语句来执行此操作。
这是我的代码:
MainActivity.java
<-- start of snippet -->
@Override
public boolean onItemLongClick(AdapterView<?> View view, final int position, long id){
Persons selectedPersons = this.list.get(position);
String name = selectedPersons.getName();
final CharSequence[] options = {"Edit", "Delete"};
builder.Items(options, new DialogInterference.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which){
list.remove(position);
adapter.notifyDataSetChanged();
Toast.makeText(MainActivity.this, "Item deleted!", Toast.LENGTH_LONG).show();
}
});
AlertDialog dialog = builder.create();
dialog.show();
return true;
}
<-- end of snippet -->
像这样在你的 onClick 中放置一个 if 条件 -
@Override
public boolean onItemLongClick(AdapterView<?> View view, f final int position, long id){
Persons selectedPersons = this.list.get(position);
String name = selectedPersons.getName();
final CharSequence[] options = {"Edit", "Delete"};
builder.Items(options, new DialogInterference.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which){
if(options[which].equals("Delete") {
list.remove(position);
adapter.notifyDataSetChanged();
Toast.makeText(MainActivity.this, "Item deleted!", Toast.LENGTH_LONG).show();
} else if(options[which].equals("Edit") {
//Do edit
}
}
});
添加列表的alertdialog onItemLongClick() 事件。 像这样的事情:
new AlertDialog.Builder(this)
.setTitle("Are you sure?")
.setMessage("Do you want to delete this MemberClass?")
.setIcon(android.R.drawable.ic_dialog_alert)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
list.remove(position);
Toast.makeText(DeleteMember.this, "Deleted Member", Toast.LENGTH_SHORT).show();
}})
.setNegativeButton(android.R.string.no, null).show();
}