Ici, j'ai essayé de créer un menu d'options, mais ce menu ne s'affiche pas à l'écran. Veuillez donc me guider où dois-je faire erreur.
MenuTest.Java
public class MenuTest extends Activity {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater=getMenuInflater();
inflater.inflate(R.menu.more_tab_menu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId())
{
case R.id.feeds:
break;
case R.id.friends:
break;
case R.id.about:
break;
}
return true;
}
}
Et mon fichier XML est more_tab_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item
Android:id="@+id/feeds"
Android:title="Feeds"/>
<item
Android:id="@+id/friends"
Android:title="Friends"/>
<item
Android:id="@+id/about"
Android:title="About"/>
</menu>
Guidez-moi s'il-vous-plaît,
public class MenuTest extends Activity {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.more_tab_menu, menu);
// return true so that the menu pop up is opened
return true;
}
}
et n'oubliez pas d'appuyer sur le bouton de menu ou l'icône sur l'émulateur ou le périphérique
s'il vous plaît voir: ==
private int group1Id = 1;
int homeId = Menu.FIRST;
int profileId = Menu.FIRST +1;
int searchId = Menu.FIRST +2;
int dealsId = Menu.FIRST +3;
int helpId = Menu.FIRST +4;
int contactusId = Menu.FIRST +5;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(group1Id, homeId, homeId, "").setIcon(R.drawable.home_menu);
menu.add(group1Id, profileId, profileId, "").setIcon(R.drawable.profile_menu);
menu.add(group1Id, searchId, searchId, "").setIcon(R.drawable.search_menu);
menu.add(group1Id, dealsId, dealsId, "").setIcon(R.drawable.deals_menu);
menu.add(group1Id, helpId, helpId, "").setIcon(R.drawable.help_menu);
menu.add(group1Id, contactusId, contactusId, "").setIcon(R.drawable.contactus_menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 1:
// write your code here
Toast msg = Toast.makeText(MainHomeScreen.this, "Menu 1", Toast.LENGTH_LONG);
msg.show();
return true;
case 2:
// write your code here
return true;
case 3:
// write your code here
return true;
case 4:
// write your code here
return true;
case 5:
// write your code here
return true;
case 6:
// write your code here
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Changez votre méthode onCreateOptionsMenu
pour renvoyer true
. Pour citer les docs :
Vous devez renvoyer true pour que le menu soit affiché; si vous retournez false, cela ne sera pas affiché.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
new MenuInflater(this).inflate(R.menu.folderview_options, menu);
return (super.onCreateOptionsMenu(menu));
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.locationListRefreshLocations) {
Cursor temp = helper.getEmployee(active_employeeId);
String[] matches = new String[1];
if (temp.moveToFirst()) {
matches[0] = helper.getEmployerID(temp);
}
temp.close();
startRosterReceiveBackgroundTask(matches);
} else if (item.getItemId()==R.id.locationListPrefs) {
startActivity(new Intent(this, PreferencesUnlockScreen.class));
return true;
}
return super.onOptionsItemSelected(item);
}
import Android.app.Activity;
import Android.os.Bundle;
import Android.view.*;
import Android.widget.*;
public class AndroidWalkthroughApp2 extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// show menu when menu button is pressed
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.options_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// display a message when a button was pressed
String message = "";
if (item.getItemId() == R.id.option1) {
message = "You selected option 1!";
}
else if (item.getItemId() == R.id.option2) {
message = "You selected option 2!";
}
else {
message = "Why would you select that!?";
}
// show message via toast
Toast toast = Toast.makeText(this, message, Toast.LENGTH_LONG);
toast.show();
return true;
}
}
Remplacez retournez super.onCreateOptionsMenu (menu); avec retourne vrai; dans votre onCreateOptionsMenu method Cela vous aidera
Et vous devriez aussi avoir la méthode onCreate dans votre activité
Les réponses précédentes ont couvert le menu traditionnel utilisé dans Android. Leur est une autre option que vous pouvez utiliser si vous cherchez une alternative
https://github.com/AnshulBansal/Android-Pulley-Menu
Le menu Poulie est une alternative au menu traditionnel qui permet à l'utilisateur de sélectionner n'importe quelle option pour une activité de manière intuitive. Le menu est révélé en faisant glisser l’écran vers le bas et dans ce geste, l’utilisateur peut également sélectionner n’importe laquelle des options.
Good Day J'ai été vérifié Et si vous choisissez Vide Activity
Vous n'avez pas de fonctions de menu intégrées Pour Construire vous devez choisir Base Activity
De cette façon, vous Activity
exécutera onCreateOptionsMenu
Ou si vous travaillez dans Activity
vide depuis le début Chenge dans styles.xml
le
La programmation de l'interface utilisateur Android est un peu délicate. Pour activer le menu Options, outre le code que vous avez écrit, nous devons également appeler setHasOptionsMenu (true) dans votre méthode surchargée OnCreate () . J'espère que cela vous aidera.
SI votre appareil exécute Android v.4.1.2 ou une version antérieure,
le menu n'est pas affiché dans la barre d'action.
Mais vous pouvez y accéder par l’intermédiaire du Menu- (matériel) -Bouton.