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);
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.
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
.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.game_menu, menu);
return true;
}
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:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_item:
// Action goes here
return true;
default:
return super.onOptionsItemSelected(item);
}
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
R.id.menu_item -> {
// Action goes here
true
}
else -> super.onOptionsItemSelected(item)
}
}
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.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.game_menu, menu);
return true;
}