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í:
Quiero que cuando se hace clic en la última imagen para eliminar esa fila. Aquí está mi adaptador:
- Actualizar dinámicamente los tipos de vista de ListView
- Error de Logcat: "addView (View, LayoutParams) no es compatible con AdapterView" en un ListView
- Uso correcto de setEmtpyView en AdapterView
- Implementación de setselection de customvisionview en Android
- GridView.setOnItemClickListener no funciona
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?
- AdapterView.OnItemClickListener con más ListView
- ¿Qué significa AdapterView <?> En el método OnitemClick ()? ¿Cuál es el uso de otros parámetros en ella?
- Manera correcta de implementar onMeasure () y onLayout () en AdapterView personalizado
- Cómo obtener texto de autocompletar textview android
- Androide. ¿Cómo funciona el método notifyDataSetChanged () y ListViews?
- Configuración de android: windowBackground a @ null hace desplazamiento a mancha?
- MultiAutoCompleteTextView no funciona OnItemSelectedListener
- No se puede iniciar la actividad: UnsupportedOperationException: addView (View, LayoutParams) no es compatible con AdapterView
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(); } });
- Leer el archivo HTML de los activos
- Android remove notification (creada por mNotifyBuilder) al hacer clic