如何使用 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();
}