2017-10-12 2 views
0

Ich habe diese ListView enthält Elemente und ich möchte ein Warndialogfeld erstellen, die alle diese Elemente entfernt, wenn ich auf ein Element lange klicken. onLongClick auf einem Artikel zeigt eine AlertDialog und wenn ich auf Ja klicke, entfernt es das Element.Entfernen Sie ein Element aus einem ListView mit einem Warndialogfeld

Hier ist mein Code.

listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 
    @Override 
    public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) { 
     new AlertDialog.Builder(MainActivity.this) 
       .setIcon(android.R.drawable.ic_dialog_alert) 
       .setMessage("Are You Sure You Want to Delete This Note?!") 
       .setTitle("Attempt to Delete A Note") 
       .setPositiveButton("YES", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialogInterface, int i) { 
         try { 
          notesList.remove(i); 
          arrayAdapter.notifyDataSetChanged(); 

          Toast.makeText(MainActivity.this, "ooooooh No!!", Toast.LENGTH_SHORT).show(); 
         } catch (Exception e) { 
          e.printStackTrace(); 
         } 
        } 
       }) 
       .setNegativeButton("NO", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialogInterface, int i) { 
         Toast.makeText(MainActivity.this, "Good Choice", Toast.LENGTH_SHORT).show(); 
        } 
       }) 
       .show(); 
     return true; 
    } 
}); 
+1

Also, was ist das Problem, das Sie mit Blick auf ?? –

+0

beschreiben Sie Ihr Problem.Ist Artikel nicht gelöscht, wenn Sie JA Taste drücken? –

+0

Die App stürzt ab, wenn ich Ja wähle, um den Artikel zu löschen –

Antwort

3

ich glaube, das Problem ist, ‚i‘ Position Alarm Dialog klicken Sie listner und u müssen Artikel Benutzer Liste geklickt Position, um Artikel aus der Liste zu löschen.

Bitte Code unten verwenden:

listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 
     @Override 
     public boolean onItemLongClick(AdapterView<?> adapterView, View view, int position, long l) { 
      new AlertDialog.Builder(MainActivity.this) 

        .setIcon(android.R.drawable.ic_dialog_alert) 
        .setMessage("Are You Sure You Want to Delete This Note?!") 
        .setTitle("Attempt to Delete A Note") 
        .setPositiveButton("YES", new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface dialogInterface, int i) { 
          try { 
           if(notesList!=null){ 
           notesList.remove(position); 
           arrayAdapter.notifyDataSetChanged(); 

          Toast.makeText(MainActivity.this, "ooooooh No!!", Toast.LENGTH_SHORT).show(); 
          } 
          }catch (Exception e){ 
           e.printStackTrace(); 
          } 
         } 
        }) 
        .setNegativeButton("NO", new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface dialogInterface, int i) { 
          Toast.makeText(MainActivity.this, "Good Choice", Toast.LENGTH_SHORT).show(); 
         } 
        }) 
        .show(); 
      return true; 
     } 
    }); 
0
listView.setAdapter(adapter); 
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, final int position, long id) { 
      new AlertDialog.Builder(MainActivity.this) 
        .setIcon(android.R.drawable.ic_dialog_alert) 
        .setMessage("Are You Sure You Want to Delete This Note?!") 
        .setTitle("Attempt to Delete A Note") 
        .setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface dialog, int which) { 
          try { 
           dataModels.remove(position); 
           adapter.notifyDataSetChanged(); 

           Toast.makeText(MainActivity.this, "ooooooh No!!", Toast.LENGTH_SHORT).show(); 
          } catch (Exception e) { 
           e.printStackTrace(); 
          } 
         } 
        }) 
        .setNegativeButton("NO", new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface dialogInterface, int i) { 
          Toast.makeText(MainActivity.this, "Good Choice", Toast.LENGTH_SHORT).show(); 
         } 
        }) 
        .show(); 

     } 
    }); 

Dies ist funktioniert bei mir ... versuchen diese

Verwandte Themen