android android-4.0-ice-cream-sandwich android-support-library android-optionsmenu

android - El menú de opciones no se muestra en ICS usando la biblioteca de compatibilidad



android-4.0-ice-cream-sandwich android-support-library (3)

Al eliminar android:targetSdkVersion="14" del manifiesto, se habilita nuevamente el botón del menú de opciones.

Esto se debe a que tenía un tema de @android:style/Theme.Black.NoTitleBar especificado en mi manifiesto - con el android: targetSdkVersion de 14, el menú de opciones se está insertando en el menú de la barra de acción, en oposición al menú de opciones El botón en la barra de botones en la parte inferior de la pantalla y el tema está eliminando el título de la actividad y la barra de acción.

La barra de acción se puede eliminar , aunque no estoy seguro de si esto solucionará el problema, ya que todavía estoy funcionando para que sea compatible con las versiones 2.2 - 4.

No puedo obtener un menú de opciones para mostrar en un Fragmento en ICS en un proyecto que utiliza la biblioteca android-support-v4.jar. Estoy probando en un teléfono Galaxy Nexus.

No estamos usando la barra de acción, y necesitamos que la aplicación sea compatible con la versión 2.2+. No vemos ningún menú de opciones en la actividad en ICS (FragmentActivity no admite onCreateOptionsMenu)

Puedo hacer que los menús funcionen en la versión anterior de Android. Tengo todo el marco correcto para habilitar el menú de opciones (como se muestra a continuación) pero nada se muestra en ICS. Al pasar por el código, no se llama al menú onCreateOptionsMenu. ¿Puede alguien sugerir una solución?

import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; public class SuperFragment extends Fragment { @Override public void onCreate(Bundle savedInstanceState) { setHasOptionsMenu(true); super.onCreate(savedInstanceState); } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.display_options_actions, menu); super.onCreateOptionsMenu(menu, inflater); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case R.id.menu_sign_in: break; case R.id.menu_sign_out: break; } return true; } // ... }

Versión del sistema operativo de destino en el archivo de manifiesto:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="14"/>


Según el CDD de Android, el límite para el nuevo comportamiento de no mostrar el menú de opciones es targetSdkVersion> 10. Sus opciones son ejecutar su aplicación en modo heredado con targetSdkVersion <= 10 o adaptar su aplicación a las nuevas pautas (por ejemplo, agregar un botón de menú en su aplicación o use una barra de acción). Tenga en cuenta que no tiene que aumentar la versión de compilación de destino (propiedades del proyecto en eclipse) para aumentar la targetSdkVersion.


Simplemente cambie el Android: targetSdkVersion de "14" a "10" (menos de 11), y este problema se resolverá.

<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="10" />