web-dev-qa-db-fra.com

Android, Comment créer une option Menu

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, 

55
vishesh chandra
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

60
DEVANG SHARMA

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);
    }
}
30
Patel Ekta

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é.

11
Felix
@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);
}   
9
Mayank Saini
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;
    }
}
2
Durul Dalkanat

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é

2
ReNa

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.

0
Anshul Bansal

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 ActivityDe cette façon, vous Activity exécutera onCreateOptionsMenu

Ou si vous travaillez dans Activity vide depuis le début Chenge dans styles.xml le

0
Michael

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.

0
anhldbk

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.

0
Computerkaste