2016-09-23 5 views
0

Ich versuche, ein Add/Remove-Element mit EditText und Button in Listview zu tun.Android konnte Element in Listview mit benutzerdefiniertem Layout nicht entfernen

Nachdem Sie Text in EditText eingegeben und auf die Schaltfläche geklickt haben, wird dieser neue Eintrag unten hinzugefügt. Wenn Sie auf das Element klicken, wird es entfernt.

Es funktioniert gut mit

final ArrayAdapter<String>arrayAdapter=new ArrayAdapter<String> 

(Main.this,android.R.layout.simple_list_item_1,arrayList); 

ist die Codierung.

button.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 

     String get_text=editText.getText().toString(); 
     arrayList.add(get_text); 
     final ArrayAdapter<String>arrayAdapter=new ArrayAdapter<String>(Main.this,android.R.layout.simple_list_item_1,arrayList); 
     listView.setAdapter(arrayAdapter); 
     editText.setText(""); 

     listView.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, final int position, long id) { 

       arrayList.remove(position); 
       arrayAdapter.notifyDataSetChanged(); 
      } 
     }); 
    } 
}); 

aber es funktioniert nicht, wenn ich auf Custom-Layout für die Listenansicht ändern. Wenn auf das Element klicken, es nicht entfernen und auch aufgefordert, kein Fehler

final ArrayAdapter<String>arrayAdapter=new ArrayAdapter<String> 

(Main.this,R.layout.row,R.id.textView,arrayList); 

enter image description here

+0

Code ist falsch – anonymous

+0

Jedes Mal, wenn Sie auf die Schaltfläche klicken und den neuen Adapter zurückgesetzt – anonymous

+0

anonym Listview ist schreiben, warum Sie listview.setonItemClickListener innerhalb buton des Click-Ereignis enthalten? –

Antwort

1

im Code Änderung vorgenommen haben. Versuche dies. :)

final ArrayAdapter<String>arrayAdapter=new ArrayAdapter<String>(Main.this,android.R.layout.simple_list_item_1,arrayList); 
listView.setAdapter(arrayAdapter); 

button.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View view) { 
String get_text=editText.getText().toString(); 
arrayList.add(get_text); 
editText.setText(""); 
arrayAdapter.notifyDataSetChanged(); 
    } 
    }); 

listView.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() { 
       @Override 
       public void onItemClick(AdapterView<?> parent, View view, final int position, long id) { 

        arrayList.remove(position); 
        arrayAdapter.notifyDataSetChanged(); 
       } 
      }); 
+0

Hey, es funktioniert nicht. Bitte beachten Sie, dass für benutzerdefiniertes Layout (Main.this, R.layout.row, R.id.textView, arrayList); nicht (Main.this, android.R.layout.simple_list_item_1, arrayList). Es funktioniert nicht für benutzerdefiniertes Layout – gosulove

+0

Haben Sie benutzerdefinierten Adapter erstellt? – anonymous

+0

nein ... aber ich dachte, da ich Artikel hinzufügen kann, sollte ich in der Lage sein, es auch zu löschen? – gosulove

Verwandte Themen