Anulando onContextItemSelected () en ActionBarSherlock
Tengo una clase que extiende SherlockActivity porque estoy usando una barra de acción ActionBarSherlock en la actividad. Sin embargo, también estoy tratando de agregar un menú contextual a un listview en esta actividad que se inicia cuando un elemento en el listview es longpressed. Estoy recibiendo un error en mi declaración de onContextItemSelected(MenuItem item)
que dice que mi anulación no es válida porque no hay nada que anular. Sin embargo, cuando quito la anulación, la función nunca se llama. Sé que esto tiene algo que ver con la forma SherlockActivity hereda de la actividad, pero no estoy seguro acerca de los detalles. Tal vez estoy perdiendo una importación? Vea el código relevante aquí:
public class Inbox extends SherlockActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_inbox); refreshMsgs(this.getCurrentFocus()); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); if (v.getId() == R.id.lstInbox){ AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo; String contactName = lstConversation.get(info.position).getContactName(); menu.setHeaderTitle(contactName); menu.add(Menu.NONE, 0, 0, "View contact"); menu.add(Menu.NONE, 1, 1, "Delete thread"); } } @Override public boolean onContextItemSelected(MenuItem item) { AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); SmsConversation selectedConvo = lstConversation.get(info.position); if (item.getItemId() == 0){ //view contact Intent viewcontactIntent = new Intent(); String contactId = selectedConvo.getContactId(); Uri uriContact = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, contactId); viewcontactIntent.setData(uriContact); PendingIntent pViewIntent = PendingIntent.getActivity(getBaseContext(), 1, viewcontactIntent, 0); try { pViewIntent.send(); } catch (CanceledException e) { e.printStackTrace(); } } else { //DELETE thread } return true; } }
Y aquí están todas mis importaciones para la clase:
- Android: Cambiar la visibilidad de los elementos del menú con un fragmento cambiante
- Vista personalizada de Android ActionBarSherlock
- No puedo conectar actionbarsherlock al proyecto
- ¿Cómo importar slidingmenu en Android Studio?
- Transparente Barra de Acción: tabcolor personalizado
import java.util.ArrayList; import com.actionbarsherlock.app.SherlockActivity; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; import com.actionbarsherlock.view.MenuInflater; import android.app.Activity; import android.app.PendingIntent; import android.app.PendingIntent.CanceledException; import android.content.ContentResolver; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.ContactsContract; import android.text.Html; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView;
- Auto build Actionbarsherlock en Jenkins obtuvo error
- Barra de acción de Sherlock cambiar el color del texto
- Biblioteca de SlidingMenu con ActionBarSherlock
- Utilice ActionBarSherlock con el mapa de Google API V2
- Mostrar Ocultar Sherlock Action Bar
- Desplazamiento incorrecto en las pestañas de la barra de acción en Barra de acción Sherlock
- No se encontró el recurso ActionBarSherlock ForceOverflow
- Cómo agregar Holo Style Horizontal ProgressBar cuando minSdkVersion Menos de 11?
Frente a un problema similar hace mucho tiempo, he sobrepasado onContextItemSelected()
forzando el MenuItem
normal usando su nombre de clase totalmente calificado ( android.view.MenuItem
), así:
@Override public boolean onContextItemSelected (android.view.MenuItem item) { //implementation }
- Carpeta de dependencias androide eliminada accidentalmente
- EditText – Obtener texto de EditText al escribir