2016-03-24 1 views
-1

Juste en essayant de créer une application simple qui permettrait aux utilisateurs de saisir des notes et de les enregistrer dans la vue Liste. Quel code aurais-je besoin de mettre en œuvre pour permettre à l'utilisateur de faire un clic long sur quelque chose dans la liste pour le supprimer.Comment puis-je sélectionner longtemps des éléments dans ListView pour les supprimer?

public class Notes extends AppCompatActivity { 

Button save; 
ArrayList<String> addArray = new ArrayList<String>(); 
EditText txt; 
ListView show; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_notes); 

    txt = (EditText) findViewById(R.id.textInput); 
    show = (ListView) findViewById(R.id.listView); 
    save = (Button) findViewById(R.id.saveButton); 

    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(Notes.this, android.R.layout.simple_list_item_1, addArray); 

    save.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      String getInput = txt.getText().toString(); 

      if (addArray.contains(getInput)) { 
       Toast.makeText(getBaseContext(), "Note already added!", Toast.LENGTH_LONG).show(); 
      } else if (getInput == null || getInput.trim().equals("")) { 
       Toast.makeText(getBaseContext(), "Input required!", Toast.LENGTH_LONG).show(); 
      } else { 
       addArray.add(getInput); 

       show.setAdapter(adapter); 
       ((EditText) findViewById(R.id.textInput)).setText(" "); 
      } 
     } 
    }); 


    show.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 
     @Override 
     public boolean onItemLongClick(AdapterView<?> av, View v, int pos, long id) { 

      return true; 
     } 
    }); 
} 

}

+0

Copie possible de [ListView personnalisé et menu contextuel. Comment l'obtenir?] (Http://stackoverflow.com/questions/3972945/custom-listview-and-context-menu-how-to-get-it) –

+0

Avez-vous vérifié ma réponse? –

Répondre

0

Cela pourrait résoudre votre problème:

addArray.remove(pos); 
adapter.notifyOnDataSetChanged();