Question

Je ne peux pas obtenir un menu d'options pour afficher dans un fragment dans ICS dans un projet qui utilise la bibliothèque android-support-v4.jar. Je teste sur un téléphone Galaxy Nexus.

Nous ne sommes pas en utilisant la barre d'action, et ont besoin de l'application pour être compatible 2.2+. Nous ne voyons pas un menu d'options de l'activité dans ICS (le FragmentActivity ne supporte pas onCreateOptionsMenu)

Je peux obtenir des menus de travail dans la version précédente d'Android - J'ai tout le cadre correct pour activer le menu des options (comme ci-dessous), mais rien ne montre dans ICS. Lorsque parcourant le code de la onCreateOptionsMenu ne soit pas appelé. Quelqu'un peut-il suggérer une solution?

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;
    }
    // ...
}

Version OS cible dans le fichier manifeste:

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="14"/>
Était-ce utile?

La solution

Suppression android:targetSdkVersion="14" du manifeste permet à nouveau sur le bouton du menu d'options.

Ceci est parce que j'avais un thème de @android:style/Theme.Black.NoTitleBar spécifié dans mon manifeste - avec l'androïde: targetSdkVersion de 14 ans, le menu d'options est inséré dans le menu barre d'action, par opposition au bouton de menu d'options dans la barre de boutons le bas de l'écran et le thème est le titre d'enlevaient activité, et la barre d'action.

La barre d'action peut être retiré , bien que je » ne sais pas si cela va résoudre le problème que je suis encore le faire fonctionner pour qu'il soit compatible avec toutes les versions 2.2 -. 4

Autres conseils

changer simplement l'androïde. TargetSdkVersion de « 14 » à « 10 » (moins de 11), et ce problème sera résolu

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

Selon l'Android CDD, la coupure pour le nouveau comportement de ne pas montrer le menu d'options est targetSdkVersion> 10. Vos options sont soit pour exécuter votre application en mode hérité avec targetSdkVersion <= 10 ou adapter votre application aux nouvelles lignes directrices (par exemple, ajouter un bouton de menu dans votre application ou utilisez une barre d'action). Notez que vous ne devez pas augmenter la version de construction cible (propriétés du projet dans Eclipse) pour augmenter le targetSdkVersion.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top