[Android / Java] Création d'un menu d'options ultra-simple (API non implémentée)

introduction

Je suis un super débutant avec une semaine de développement Android. J'ai créé un simple OptionMenu comme sortie. Il a fallu beaucoup de temps pour l'implémenter, donc j'espère que cela sera utile pour les mêmes débutants.

Aperçu de l'application

Une application ultra-simple qui change le message affiché lorsque vous appuyez sur le bouton Enregistrer installé en haut à droite de l'écran  

Code pour chaque fichier

Afficher les paramètres de disposition du menu d'options

  1. Créez un fichier xml pour le menu d'options dans le dossier res / menu.
  2. Créez le contour du menu d'options avec la balise menu et les éléments de menu (bouton Enregistrer) avec la balise item.
  3. Trois attributs requis pour l'étiquette d'article android: id: clé pour lier le fichier menu et le fichier java android: title: Chaîne de caractères à afficher dans le menu app: showAsAction: s'il faut afficher dans la barre d'action (jamais <ifRoom <toujours)

option_menu.xml


//Supprimez toutes les premières instructions par défaut et écrivez ce qui suit
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android">
    
    <item android:id="@+id/option_save"
        android:title="sauvegarder"
        app:showAsAction="always" />

</menu>

Paramètres de disposition de l'écran principal

android: id: clé pour lier le fichier de mise en page et le fichier java android: texte: Chaîne de caractères à afficher sur l'écran principal

activity_main.xml



<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

   //Jouez juste avec l'identifiant et le texte
    <TextView
        android:id="@+id/text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Appuyez sur le bouton Enregistrer"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

fichier java

Considérez les deux méthodes suivantes comme des règles d'implémentation des menus d'options. onCreateOptionsMenu(Menu menu) onOptionsItemSelected(MenuItem item)

MainActivity.java


public class MainActivity extends AppCompatActivity {
    //Laissez la valeur par défaut ok
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    //Affichage du menu d'options (bouton Enregistrer)
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // MenuInflater(Classe pour gonfler les menus en objets Java)Avoir
        MenuInflater inflater = getMenuInflater();
        // option_menu.Gonfler les éléments de menu décrits en XML en objets Java
        inflater .inflate(R.menu.option_menu, menu);
        //Renvoie la valeur de retour
        return true;
    }

    //Traitement lorsque le menu d'options (bouton Enregistrer) est sélectionné
    @Override
    public boolean onOptionsItemSelected(MenuItem item)
        // activity_main.Obtenir TextView de xml
        TextView textView = findViewById(R.id.text_view);
        //Placer une nouvelle chaîne de caractères dans le texte acquis
        textView.setText("Le bouton Enregistrer a été enfoncé");
        //Renvoie la valeur de retour
        return true;
    }
}

finalement

Puisque je suis un super débutant, veuillez signaler toute différence.

Site de référence

・ Https://developer.android.com/guide/topics/ui/menus?hl=ja#options-menu ・ Https://qiita.com/watataku/items/5faad0384b54d0c53f6e Merci beaucoup!

Recommended Posts

[Android / Java] Création d'un menu d'options ultra-simple (API non implémentée)
Le calendrier Java n'est pas un singleton.
[Création] Un mémorandum sur le codage en Java
Création d'une classe de matrice dans Java Partie 1