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:

@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.

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(); } 
  • Detección de la dirección de desplazamiento en el adaptador (arriba / abajo)
  • ¿Los servicios del sistema no están disponibles para las actividades antes de crear?
  • OnItemClick da el índice / la posición del elemento en la página visible ... no el índice real del elemento en la lista .. emitir al habilitar setTextFilterEnabled
  • ListView dentro de ScrollView no se desplaza en Android
  • Botón para mostrar el teclado virtual?
  • Android - autoLink
  • Cómo puede el estilo el ListView de un ListFragment
  • Android ListView con elementos que se pueden hacer clic en sus filas provoca problemas de desplazamiento continuo
  • Pasar la posición en el ListView al niño RecyclerView Adapter
  • Android ListView alpha scroller para desplazamiento rápido de larga lista
  • Android: cómo usar SectionIndexer
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.