web-dev-qa-db-fra.com

Comment supprimer l'icône des paramètres (menu de débordement) en haut à droite de la barre d'action?

Comment supprimer l'icône des paramètres en haut à droite de la barre d'actions? Lorsque j'émule sur mon véritable téléphone Samsung Galaxy S3, il n'est pas là, cependant, lorsque j'émule sur un AVD pour le Nexus 7, il apparaît. Voici le code de mon menu:

<menu xmlns:Android="http://schemas.Android.com/apk/res/Android" >
    <item
        Android:id="@+id/action_settings"
        Android:orderInCategory="100"
        Android:showAsAction="never"
        Android:title="@string/action_settings"/>
    <item
        Android:id="@+id/main_menu_actionbutton"
        Android:orderInCategory="100"
        Android:showAsAction="always"
        Android:title="@string/Menu"/>
</menu>
24
Paradox

Si vous voulez dire les trois points, cela s'appelle le menu de débordement. Il existe sur les appareils qui n'ont pas de bouton de menu matériel - que possède votre Galaxy S3, contrairement au Nexus 7. Donc, sur votre S3, vous appuyez sur le bouton de menu et obtenez la fenêtre contextuelle en bas, mais sur le Nexus, vous appuyez sur les 3 points et la fenêtre contextuelle de débordement descend de la barre d'action. S'il n'était pas là, comment pourriez-vous accéder aux éléments de débordement?

Si vous souhaitez simplement le supprimer, supprimez simplement le premier <item /> entrée dans le menu.xml vous avez posté.

53
Adam S

Il existe deux méthodes dans votre classe "MainActivity" Java. Elles sont appelées onCreateOptionsMenu et onOptionsItemSelected. Elles sont généralement ajoutées par des IDE comme Eclipse lorsque vous utilisez les paramètres par défaut pour créer une activité dans votre projet. Les méthodes ressemblent à celles illustrées ci-dessous.

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.settings, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}

Ces méthodes créent les éléments de menu et insèrent le code de ce qui doit être fait lorsque l'un des éléments de menu est cliqué. Supprimez ou commentez ces deux méthodes et vous devriez voir que le bouton de menu disparaîtra. Les XML peuvent toujours les avoir au cas où vous voudriez que vos éléments de menu ou votre menu reviennent.

29
prajitdas

en tant qu'Android: showAsAction pour l'élément suivant est défini sur jamais cet élément ne fera partie du menu de débordement. définissez-le sur toujours ou ifroom r supprimez cet élément et cela fonctionnera

<item
    Android:id="@+id/action_settings"
    Android:orderInCategory="100"
    Android:showAsAction="never"
    Android:title="@string/action_settings"/>
3
vipul mittal