Recuperar texto de un elemento ListView con OnContextItemSelected
Tengo un ListView con un menú de contexto "clásico" con la supresión y las opciones similares. Puesto que estoy suprimiendo de un objeto SharedPreferences, necesito recuperar la llave, que es el conjunto del texto en los artículos de ListView.
He intentado el siguiente código:
- ¿Cómo puedo evitar que el pie de página de ListView se seleccione?
- ¿Cómo enviar datos de una actividad a su fragmento padre?
- Los elementos listView desaparecen en desplazamiento para android 2.3
- Tire para actualizar y cargar en listview
- Cómo crear DrawerLayout programaticamente
@Override public boolean onContextItemSelected(MenuItem item){ AdapterContextMenuInfo saved = (AdapterContextMenuInfo) item.getMenuInfo(); TextView view = (TextView)findViewById((int) saved.id); Log.d("DEBUG:", "before key"); String key = view.getText().toString(); Log.d("DEBUG:", "after..."); switch (item.getItemId()){ case R.id.conmenu_delete: return true; case R.id.conmenu_copy: return true; case R.id.conmenu_send: return true; default: return super.onContextItemSelected(item); } }
Pero, por desgracia, se bloquea al intentar recuperar el texto de la vista, como lo sé de los registros.
- Checkbox auto call onCheckedChange cuando se desplaza el listview?
- Android QuickContactBadge con letras como Android Lollipop
- En el gaviota de navegación, haga clic en, nueva vista de lista en el cajón de navegación
- ListView con ScrollView horizontal
- ArrayIndexOutOfBoundsException cuando se utiliza ListAdapter
- Generar listview desde JSON en android
- ¿Cómo hacer gradiente transparente?
- Eliminación de un elemento de ListView dentro de un adaptador personalizado
Ya ha AdapterContextMenuInfo
correctamente el AdapterContextMenuInfo
.
A partir de ahí, puede obtener el targetView que puede convertir de nuevo en el widget. Supongo que es un TextView
en tu caso. En ese TextView
puede llamar al getText()
simple getText()
.
@Override public boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); String key = ((TextView) info.targetView).getText().toString(); switch (item.getItemId()){ case R.id.conmenu_delete: return true; case R.id.conmenu_copy: return true; case R.id.conmenu_send: return true; default: return super.onContextItemSelected(item); } }
Si su lista está poblada con objetos personalizados, obviamente tiene que convertirlo al tipo respectivo, por ejemplo:
Person person = (Person) getListAdapter().getItem(info.position); String key = person.getName();
@Override public boolean onContextItemSelected(MenuItem item) { AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); Object obj = getListView().getItemAtPosition(info.position); String title = obj.toString(); }
- Problema que coincide con el patrón regex en Android
- Realizar búsqueda en Android dentro de la misma actividad