web-dev-qa-db-fra.com

Qu'est-ce que onCreateOptionsMenu (menu)

Quels sont les deux paramètres Menu et menu dans la méthode onCreateOptionsMenu(Menu menu) et comment utiliser cette méthode. J'ai une autre question pourquoi le paramètre this est utilisé dans 

Intent intent = new Intent(this, DisplayMessageActivity.class);
8
Prashant

Le menu est simplement le type du menu de paramètres. Par exemple, vous pouvez avoir un type String pour une variable nommée string, dog, etc. Et dans ce cas, il existe un type Menu pour un paramètre nommé menu.

Vous utilisez onCreateOptionsMenu () pour spécifier le menu d'options d'une activité . Cette méthode vous permet de gonfler votre ressource de menu (définie en XML) dans le menu fourni dans le rappel.

Par exemple:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.game_menu, menu);
    return true;
}

Pour plus d’informations, visitez ce link .

Quant à cela

Dans une méthode d'instance ou un constructeur, il s'agit d'une référence à l'objet actuel - l'objet dont la méthode ou le constructeur est appelé.

Par exemple:

public void sendMessage() {
    Intent intent = new Intent(this, DisplayMessageActivity.class);
}

Le constructeur prend deux paramètres et un contexte comme premier paramètre .this représente des données d'environnement et fournit des informations globales sur un environnement d'application. 

Pour plus d'informations sur l'exemple d'intention que vous avez fourni, vérifiez this out.

18
Charles Li

Le but de l'implémentation de cette méthode est de renseigner la variable menu transmise avec l'élément que vous avez défini dans le fichier de mise en forme R.menu.game_menu.

Java

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.game_menu, menu);
    return true;
}

Kotlin

override fun onCreateOptionsMenu(menu: Menu): Boolean {
    menuInflater.inflate(R.menu.game_menu, menu)
    return true
}

Après avoir gonflé le menu avec les éléments, vous pouvez ajouter une action quand ils sont sélectionnés:

Java

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.menu_item:
            // Action goes here
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

Kotlin

override fun onOptionsItemSelected(item: MenuItem): Boolean {
    return when (item.itemId) {
        R.id.menu_item -> {
            // Action goes here
            true
        }
        else -> super.onOptionsItemSelected(item)
    }
}
7
Felipe Belluco

Tout d’abord, dans onCreateOptionsMenu (menu Menu), vous ne transmettez qu’un paramètre et non deux. Vous passez l'objet de la classe de menu là-bas. Nous utilisons cette fonction pour remplacer la fonction par défaut afin de personnaliser notre propre menu, comme l’ajout de boutons et de textes, d’images, etc. dans le menu. 

Pour plus de référence

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.game_menu, menu);
    return true;
}
0
madhan kumar