Entfernen eines Elements aus der custom listview auf den button klicken
Habe ich eine custom listview mit 2 textviews und 2 Tasten (Wiedergabe-und löschen-button)
Ich will, wenn ich auf die löschen-Taste zum löschen der aktuellen Zeile.
Mein adapter Klasse
import java.util.ArrayList;
import android.content.Context;
import android.graphics.Color;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.TextView;
public class SunetePreferateAdaptor extends BaseAdapter {
class ob {
String titlu, descriere;
public ob(String titlu, String descriere) {
this.titlu = titlu;
this.descriere = descriere;
}
}
ArrayList<ob> lista;
Context context;
public SunetePreferateAdaptor(Context context) {
this.context = context;
lista = new ArrayList<ob>();
for (int i = 1; i <= 20; i++) {
lista.add(new ob("text", "text2"));
}
}
@Override
public int getCount() {
//TODO Auto-generated method stub
return lista.size();
}
@Override
public Object getItem(int arg0) {
//TODO Auto-generated method stub
return lista.get(arg0);
}
@Override
public long getItemId(int arg0) {
//TODO Auto-generated method stub
return arg0;
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
//TODO Auto-generated method stub
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.single_favsound_row, arg2, false);
Button b2 = (Button) row.findViewById(R.id.button2);
b2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
//here, i want to delete the current row of the listview
//
//
}
});
TextView titlu = (TextView) row.findViewById(R.id.singleText2);
titlu.setText(lista.get(arg0).titlu);
titlu.setTextColor(Color.WHITE);
titlu.setTypeface(Global.font1);
TextView descriere = (TextView) row.findViewById(R.id.singleText1);
descriere.setText(lista.get(arg0).descriere);
descriere.setTextColor(Color.WHITE);
descriere.setTypeface(Global.font1);
return row;
}
}
Gut, wie kann ich das machen?
Ich habe versucht, die arraylist static und löschen Sie die Elemente auf Sie auf.. aber kein Erfolg..
InformationsquelleAutor Boldijar Paul | 2014-04-16
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie nicht machen
ArrayList
statisch.Müssen Sie die Daten löschen von der Liste, die füllt die Listenansicht. Rufen Sie
notifyDataSetChanged();
zum aktualisieren der lsitview.Können Sie entfernen Sie die statische key-word und verwenden Sie
Alternative :
Können Sie die Liste der Konstruktor der Adapterklasse.
lv.setAdapter(new SunetePreferateAdaptor(lista));
Dann haben diese in einem separaten .java-Datei
Dann
mit dieser nur das erste Element entfernen, nicht bestimmte Artikel.
dann sind Sie nicht tun es richtig
jedes mal, wenn die position kommt null.
gut das problem kann unterschiedlich sein. Post eine neue Frage. Aber die oben genannte Lösung funktioniert
InformationsquelleAutor Raghunandan
versuchen, diese
es sollte
arg0
nichtposition
- und da die Innenseite anonym die innere Klasse muss esfinal
oder Sie können tun, wie vorgeschlagen in meinem postwerden Sie auch brauchen, um dies zu ändern
public void onClick(View arg0) {
zupublic void onClick(View v) {
coz Sie habenpublic View getView(int arg0, View arg1, ViewGroup arg2) {
der erste param ist auch arg0InformationsquelleAutor Zeer0
Können Sie getan es mit Ihrem ArrayList lista. Entfernen Sie zuerst den Artikel in der aktuellen position und der call-adapter.notifyDataSetChanged () - Funktion.
InformationsquelleAutor Top Cat
Dieser code war absolut in Ordnung für mich.
InformationsquelleAutor Nikhil Khurana