removeView(View) is not supported in AdapterView
Ich löschen möchte eine bestimmte Zeile aus einem listView, wenn eine Bildansicht klicken. Meine listview sieht so aus :
Möchte ich, dass wenn das Letzte Bild geklickt wird, löschen Sie die Zeile. Hier mein adapter :
public class UserItemAdapter extends ArrayAdapter<Photos.Record> {
private ArrayList<Photos.Record> photos;
public UserItemAdapter(Context context, int textViewResourceId, ArrayList<Photos.Record> photos) {
super(context, textViewResourceId, photos);
this.photos = photos;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.photorowlist, null);
v.setClickable(true);
v.setFocusable(true);
}
Photos.Record user = photos.get(position);
if (user != null) {
TextView photo_name = (TextView) v.findViewById(R.id.photoname);
if (photo_name != null) {
photo_name.setText(user.photo_name);
}
}
v.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
//Toast.makeText(view.getContext(), "Clicked", Toast.LENGTH_SHORT).show();
ImageView delete_photo = (ImageView) view.findViewById(R.id.deletephoto);
delete_photo.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Toast.makeText(Photos.this, "Delete Button Clicked", Toast.LENGTH_SHORT).show();
listView.removeView(v);
myadapter.notifyDataSetChanged();
}});
}
});
return v;
}
}
public class Record {
public String photo_name;
public Record(String photo_name) {
this.photo_name = photo_name;
}
}
Ich habe versucht, löschen Sie die Zeile mit dieser :
listView.removeView(v);
myadapter.notifyDataSetChanged();
und ich bekomme die Fehlermeldung : ERROR AndroidRuntime java.lang.UnsupportedOperationException: removeView(View) is not supported in AdapterView
Wo ist mein mystake? Irgendeine Idee?
InformationsquelleAutor Gabrielle | 2012-07-11
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie nicht entfernen Sie die
View
aber entfernen Sie Elemente in Ihren Fotos Liste.Darüber hinaus sollten Sie verwenden
ViewHolders
gibt es eine Menge tuts in Google.Hoffe, das wird Ihnen helfen.
Ich habe versucht, eine solche Lösung (entfernen von Daten aus dem adapter arraylist und dann aktualisieren), aber hat nicht funktioniert. Öffnete eine andere Frage, die hier: stackoverflow.com/questions/38250987/...
InformationsquelleAutor AMerle
In onItemClick(AdapterView parent, View View, int position, long id) verwenden
parent.removeViewInLayout(view);
statt
InformationsquelleAutor macio.Jun
Sollten Sie versuchen, es auf dem UI-thread, so dass es funktioniert sofort:
InformationsquelleAutor Yogesh Somani