[JAVA] J'ai ouvert la barre de menu (menu d'options) sur Android et l'ai vue.

introduction

Bonjour. Je suis Wataku, un programmeur côté serveur qui étudie la programmation dans une certaine école. : détendu: Développons également Android cette fois.

Personne cible

Comment créer un menu d'options

** (1) description xml **

    • Créez un fichier xml pour le menu d'options dans le dossier res / menu. * -> Cliquez avec le bouton droit sur le dossier res dans Android Studio et utilisez la boîte de dialogue affichée dans Nouveau> Fichier de ressources Android.
  1. Décrivez la balise d'élément dans la balise de menu *. * -> Une étiquette d'article est une option.
  2. Notez les 3 attributs suivants de la balise * item. *

--android: id: id de ce choix --android: title: affiche la chaîne de caractères --app: showAsAction: s'il faut afficher dans la barre d'action

** (2) Sous-menu **

Dans le fichier xml de menu, décrivez la combinaison de balises d'élément de menu dans la balise d'élément. Les sous-menus peuvent être affichés en les imbriquant.

(3)showAsAction

L'attribut app: showAsAction de la balise d'élément a les trois valeurs suivantes.

--never: menu de débordement sans affichage dans la barre d'actions Stocker dans --always: toujours affiché dans la barre d'action (non recommandé) --ifRoom: s'affiche uniquement lorsque la barre d'action a de la place

(Mise en garde) `` Si la classe parente de la classe d'activité n'est pas AppCompatAction mais simplement Activity, ce sera l'attribut android: showAsAction. ''

** (4) icône **

Vous pouvez spécifier l'icône de menu avec l'attribut android: icon de la balise d'élément. Cependant, les options avec cet attribut ont les spécifications suivantes.

(Mise en garde) `` Vous pouvez créer votre propre image d'icône, mais le SDK Android en a également une pratique. Pour les utiliser, spécifiez "@ android: drawable / ic_menu _...". ''

Exemple de code

<?xml version="1.0" encoding="utf-8"?>
<menu
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/menuReset"
        android:icon="@android:drawable/ic_menu_close_clear_cancel"
        android:title="@string/menu_reset"
        app:showAsAction="always|withText"/>
    <item
        android:id="@+id/menuFonttype"
        android:title="@string/menu_fonttype"
        app:showAsAction="never"
        >
        <menu>
            <item
                android:id="@+id/menuFonttypeSerif"
                android:title="@string/menu_fonttype_serif"
                app:showAsAction="never"/>
            <item
                android:id="@+id/menuFonttypeSunserif"
                android:title="@string/meun_fonttype_sunsserif"
                app:showAsAction="never"/>
            <item
                android:id="@+id/menuFonttypeMonospace"
                android:title="@string/menu_fontttype_monospace"
                app:showAsAction="never"/>
        </menu>
    </item>
    <item
        android:id="@+id/menuFontstyle"
        android:title="@string/menu_fontstyle"
        app:showAsAction="never"
        >
        <menu>
            <item
                android:id="@+id/menuFontstyleNormal"
                android:title="@string/menu_fontstyle_normal"
                app:showAsAction="never"/>
            <item
                android:id="@+id/menuFontstyleItalic"
                android:title="@string/menu_fontstyle_italic"
                app:showAsAction="never"/>
            <item
                android:id="@+id/menuFontstyleBold"
                android:title="@string/menu_fontstyle_bold"
                app:showAsAction="never"/>
            <item
                android:id="@+id/menuFontstyleBoldItalic"
                android:title="@string/menu_fontstyle_bolditalic"
                app:showAsAction="never"/>
        </menu>
    </item>
</menu>

Afficher le menu d'options

Pour afficher le menu d'options décrit dans le fichier xml, dans la classe d'activité Vous devez écrire la méthode ** onCreateOptionsMenu () **.

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(Nom de fichier XML du menu d'options, menu);
        return true;
    }

Traitement au moment de la sélection

Le processus lorsque le menu d'options est sélectionné est décrit dans la méthode ** onCreateOptionsMenu () **. L'élément d'argument (type d'élément de menu) est traité par le modèle suivant en utilisant cet élément d'argument pour un menu sélectionné.

  1. Obtenez l'id du menu sélectionné par * item.getItemId (). *
  2. Branchez le processus en le comparant à la valeur R de id du menu décrit dans * xml. * -> L'instruction Switch est pratique.
@Override
    public boolean onOptionsItemSelected(MenuItem item) {
       
        int itemId = item.getItemId();
        switch (itemId) {
            case R.id.Bouton R valeur 1:
                //Processus 1
                break;
            case R.id.Bouton R valeur 2:
                //Processus 2
                break;
                ...
                ...
       }

TIPS

Bouton de retour d'intention

Décrivez ce qui suit dans la classe d'activités.

android.support.v7.app.ActionBar actionbar = getSupportActionBar();
actionbar.setDisplayHomeAsUpEnabled(true);

public boolean onOptionsItemSelected(MenuItem item) { Décrivez ce qui suit dans l'instruction switch de.

case android.R.id.home:
        finish();
        db.close();
        break;

Post-scriptum (11/11/2018)

Avec la procédure ci-dessus, le menu d'options suivant apparaîtra dans le coin supérieur droit. スクリーンショット 2018-11-11 15.52.32.png Lorsque vous appuyez sur, ... スクリーンショット 2018-11-11 15.53.06.png Si vous appuyez à nouveau sur "Police", ... スクリーンショット 2018-11-11 15.53.40.png Lorsque vous appuyez sur "police" スクリーンショット 2018-11-11 15.54.09.png

Post-scriptum (30/11/2018)

Voir ici pour une liste d'icônes.

c'est tout. C'était comment mettre la barre de menu sur Android. Si vous avez des suggestions telles que quelque chose qui ne va pas, veuillez nous contacter. Merci d'avoir lu jusqu'au bout.

Recommended Posts

J'ai ouvert la barre de menu (menu d'options) sur Android et l'ai vue.
J'ai installé Docker sur EC2 et l'ai démarré
Je suis tombé sur la version Java dans Android Studio, je vais donc le résumer
J'ai vu la liste du développement Android collectivement
Importez une instance et utilisez-la sur un autre écran
[Android] Afficher les images et les caractères dans l'onglet ViewPager
Je souhaite simplifier la sortie du journal sur Android
J'ai fait un "Sunshine Ikezaki game" que j'ai vu sur Twitter en Java.
Installez le plugin memcached sur MySQL et accédez à partir de Java
Je veux ajouter l'option désactivée à f.radio_button en fonction de la condition
Obtenez l'accélération et l'orientation du système de coordonnées mondial sur Android
UnsupportedClassVersionError a été généré lorsque j'ai placé le fichier .war construit avec Eclipse sur EC2 et l'ai exécuté.
Je souhaite télécharger un fichier sur Internet en utilisant Ruby et l'enregistrer localement (avec prudence)
[Android] Obtenez la date du lundi
[Android] Comment activer / désactiver le panneau de notification à l'aide de StatusBarManager
Ajoutez une bibliothèque jar pré-construite à Android et appelez-la dans le cadre
[Swing] Comment afficher un nom arbitraire dans la barre de menu sur Mac
Créer une application et la déployer pour la première fois avec heroku
J'ai en fait exprimé le problème de la sœur aînée dans le code et l'ai calculé
Est-il possible de mettre la bibliothèque (aar) dans la bibliothèque Android (aar) et de l'utiliser?
L'application Android plante. Cliquez simplement sur un bouton et il tombera.