RemoveView (View) no es compatible con AdapterView

Quiero eliminar una determinada fila de un listView cuando se hace clic en un ImageView. Mi listview se ve así: Introduzca aquí la descripción de la imagen

Quiero que cuando se hace clic en la última imagen para eliminar esa fila. Aquí está mi adaptador:

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; } } 

He intentado eliminar la fila usando esto:

 listView.removeView(v); myadapter.notifyDataSetChanged(); 

Y obtengo el error: ERROR AndroidRuntime java.lang.UnsupportedOperationException: removeView(View) is not supported in AdapterView

¿Dónde está mi mystake? ¿Alguna idea?

No tiene que quitar la View pero eliminar elementos de la lista de fotos.

 photos.remove(yourPhoto); notifyDataSetChanged(); 

Por otra parte, debe utilizar ViewHolders , hay un montón de tuts en Google. Espero que esto te ayudará.

En onItemClick (padre AdapterView, vista View, int position, long id) use

parent.removeViewInLayout(view);

en lugar de

 parent.removeViewAt(position); 

Debe probarlo en el hilo de interfaz de usuario para que funcione instantáneamente:

  listView.remove(position); runOnUiThread(new Runnable() { public void run() { adapter.notifyDataSetChanged(); } }); 
  • Desplazamiento automático de AdapterView (Listview, GridView, ...)
  • No se pueden dibujar vistas secundarias en el grupo de vistas cuando se utiliza la vista del adaptador
  • Cómo obtener objeto de listview en setOnItemClickListener en android?
  • Spinner: obtener estado o recibir notificación cuando se abre
  • Android: stackFromBottom = "true" no parece funcionar perfectamente (revertir ListView con el adaptador)
  • GridView con el botón del menú del filtro en Android
  • IsItemChecked siempre devuelve lo contrario de lo que se supone que cuando dentro de un onItemClickListener?
  • Extensión de AdapterView
  • Diferencia entre onItemClickListener y OnItemSelectedListener de AdapterView
  • El tipo nuevo AdapterView.OnItemClickListener () {} debe implementar el método abstracto heredado AdapterView.OnItemClickListener)
  • RequestLayout () incorrectamente llamado por android.widget.RelativeLayout android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.