ContextMenu no aparece en el clic largo

El menú contextual no aparece en el clic largo de los elementos de la lista en la vista de lista. He ampliado el adaptador de base y he utilizado un titular de vista para implementar la lista personalizada con textviews y un imagebutton.

adapter = new MyClickableListAdapter(this, R.layout.timeline, mObjectList); list.setAdapter(adapter); registerForContextMenu(list); 

Implementación de onCreateContextMenu

  @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { // TODO Auto-generated method stub super.onCreateContextMenu(menu, v, menuInfo); Log.d(TAG, "Entering Context Menu"); menu.setHeaderTitle("Context Menu"); menu.add(Menu.NONE, DELETE_ID, Menu.NONE, "Delete") .setIcon(R.drawable.icon); } 

El XML para listview está aquí

  <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" /> 

He estado intentando esto por muchos días. Creo que es imposible registrar Context-menu para una vista de lista personalizada como esta. Corregirme si estoy equivocado (posiblemente con código de ejemplo).

Ahora estoy pensando en agregar un botón al elemento de lista y muestra un menú al hacer clic en él. ¿Es posible de alguna otra manera que usar los cuadros de diálogo?

Cualquier ayuda sería muy apreciada ..

¿Por qué no utilizaste ListActivity ?

En mi ListActivity tengo:

 @Override protected void onCreate(Bundle savedInstanceState) { /* setContentView() and all stuff that happens in this method */ registerForContextMenu(getListView()); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); AdapterView.AdapterContextMenuInfo info; try { info = (AdapterView.AdapterContextMenuInfo) menuInfo; } catch (ClassCastException e) { Log.e(TAG, "bad menuInfo", e); return; } Something something = (Subway) getListAdapter().getItem(info.position); menu.setHeaderTitle(something.getName()); menu.setHeaderIcon(something.getIcon()); menu.add(0, CONTEXT_MENU_SHARE, 0, "Do something!"); } @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { AdapterView.AdapterContextMenuInfo info; try { info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); } catch (ClassCastException e) { Log.e(TAG, "bad menuInfo", e); return false; } switch (item.getItemId()) { case DO_SOMETHING: /* Do sothing with the id */ Something something = getListAdapter().getItem(info.position); return true; } 

Este problema surge en la vista de lista cuando tiene elementos que pueden enfocarse como checkbox, radioButton, etc. Para solucionar esto en el diseño del elemento de lista para los elementos que se pueden enfocar, se incluyen:

 android:focusable="false"; 

Utilice OnItemLongClickListener (a través del método set ~) del ListView.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.