Bir listeden belirli bir satırı silmek istiyorum Bir ImageView tıklandığında görün. Benim liste görünümü şunun gibi görünüyor: removeView (Göster) AdapterView içinde desteklenmiyor
En son resim tıklatıldığında bu satırı silmek istiyorum.
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;
}
}
Bunu kullanarak satırı silin çalıştı: İşte benim adaptör olup
listView.removeView(v);
myadapter.notifyDataSetChanged();
ve ben hatayı alıyorum: ERROR AndroidRuntime java.lang.UnsupportedOperationException: removeView(View) is not supported in AdapterView
benim mystake nedir? Herhangi bir fikir?
Hayır, ancak yanlış bir şekilde yaptığınızı düşünüyorum. ClickListener'ınızı adaptörünüze değil, aktivitenize (veya parçanıza) yazmamalısınız. Ardından görünümünüz için bir OnItemClickListener ayarladıktan sonra fotoğrafınızı buradan silersiniz. Açık olduğumdan emin değilim, ama [Cyril Mottier'in blogu] 'na bir göz atmalısınız. (Http://android.cyrilmottier.com/?p=525) – AMerle
Böyle bir çözümü denedim (adaptör arraylist'ten verileri kaldırarak) ve sonra ferahlatıcı) ama işe yaramadı. Burada başka bir sorun açıldı: http://stackoverflow.com/questions/38250987/removing-an-item-from-the-dropdown-list-of-a-baseadapter –