Comment puis-je implémenter un menu d'options dans mon Android? J'ai essayé le code de développeur Android mais j'obtiens des erreurs. Telles que celles-ci: Le menu élément doit être déclaré . Voici mon code
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:id="@+id/new_game"
Android:icon="@drawable/ic_new_game"
Android:title="@string/new_game"
Android:showAsAction="ifRoom"/>
<item Android:id="@+id/help"
Android:icon="@drawable/ic_help"
Android:title="@string/help" />
</menu>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="com.lucavanraalte.test" >
<application
Android:allowBackup="true"
Android:icon="@mipmap/ic_launcher"
Android:label="@string/app_name"
Android:supportsRtl="true"
Android:theme="@style/AppTheme" >
<activity Android:name=".MainActivity" Android:screenOrientation="portrait">
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Dans votre Java Java, ajoutez ce onCreateOptionsMenu
pour afficher l'optionMenu,
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.option_menu, menu); //your file name
return super.onCreateOptionsMenu(menu);
}
Gardez votre dossier sous res\menu\option_menu,
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:id="@+id/new_game"
Android:icon="@drawable/ic_new_game"
Android:title="@string/new_game"
Android:showAsAction="ifRoom"/>
<item Android:id="@+id/help"
Android:icon="@drawable/ic_help"
Android:title="@string/help" />
</menu>
Maintenant, si vous voulez définir onOptionsItemSelected
c'est-à-dire l'événement onClick pour que vous puissiez utiliser,
@Override
public boolean onOptionsItemSelected(final MenuItem item) {
switch (item.getItemId()) {
case Android.R.id.new_game:
//your code
// EX : call intent if you want to swich to other activity
return true;
case R.id.help:
//your code
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Vous devez utiliser onCreateOptionsMenu (Menu menu)
Initialisez le contenu du menu d'options standard de l'activité. Vous devez placer vos éléments de menu dans le menu.
Ceci n'est appelé qu'une seule fois, la première fois que le menu d'options s'affiche. Pour mettre à jour le menu chaque fois qu'il est affiché, voir onPrepareOptionsMenu (Menu).
onCreateOptionsMenu (menu Menu) méthode qui doit remplacer dans la classe Activity. Cela crée un menu et renvoie une valeur booléenne. gonfler gonfle une hiérarchie de menus à partir d'une ressource XML.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.option_menu, menu); // set your file name
return super.onCreateOptionsMenu(menu);
}
Votre option_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:id="@+id/item_First"
Android:title="@string/item_First"
Android:showAsAction="ifRoom"/>
<item Android:id="@+id/save_menu"
Android:title="@string/save"
Android:showAsAction="ifRoom"/>
<item Android:id="@+id/item_Second"
Android:title="@string/item_First"
Android:showAsAction="ifRoom"/>
</menu>
Veuillez vérifier la démo Exemple de menu d'options Android
Vous devez créer un menu.xml
dans le répertoire res-> menu comme menu
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:id="@+id/new_game"
Android:icon="@drawable/ic_new_game"
Android:title="@string/new_game"
Android:showAsAction="ifRoom"/>
<item Android:id="@+id/help"
Android:icon="@drawable/ic_help"
Android:title="@string/help" />
</menu>
Ensuite, vous devez créer votre menu à partir de l'activité avec le code ci-dessous
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.help) {
//do something
return true;
}
if (id == R.id.new_game) {
//do something
return true;
}
return super.onOptionsItemSelected(item);
}
Vous devez créer un dossier menu
dans le répertoire res
et dans le répertoire de menu créer un fichier nommé my_menu.xml. Dans ce fichier, écrivez ces lignes:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:id="@+id/new_game"
Android:icon="@drawable/ic_new_game"
Android:title="@string/new_game"
Android:showAsAction="ifRoom"/>
<item Android:id="@+id/help"
Android:icon="@drawable/ic_help"
Android:title="@string/help" />
</menu>
Ensuite, dans votre activité, procédez comme suit:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.my_menu, menu);
return true;
}