Pregunta

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 2.2+. No estamos viendo ningún menú de opciones en la actividad en ICS (la fragmentActivity no es compatible con OnCreateeCtionsMenu)

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 atravesar el código, no se llama a los menu. ¿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 objetivo en el archivo manifiesto:

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="14"/>
¿Fue útil?

Solución

Eliminación android:targetSdkVersion="14" Desde el manifiesto, habilita el botón de menú Opciones nuevamente.

Esto es porque tenía un tema de @android:style/Theme.Black.NoTitleBar especificado en mi manifiesto: con Android: TargetSDKVersion de 14, el menú de opciones se está insertando en el menú de la barra de acción, a diferencia del botón Menú de opciones en la barra de botones en la parte inferior de la pantalla y el tema está eliminando la actividad título y la barra de acción.

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

Otros consejos

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" />

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 ADD un botón de menú en su aplicación o usar una barra de acción). Tenga en cuenta que no tiene que aumentar la versión de compilación de Target (propiedades del proyecto en Eclipse) para aumentar el TargetSDKVersion.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top