1 votes

sélection d'un élément d'option dans le menu de dialogue

J'ai eu quelques problèmes récemment et je pense avoir besoin de votre aide :). Je sais qu'il serait beaucoup plus facile de lancer une nouvelle activité, mais cela m'obligerait à stocker/passer beaucoup de données. J'ai réussi à afficher un menu d'options en écrivant un dialogue personnalisé et en réécrivant la méthode oncreateOptionMenu. Mon problème est que je n'arrive pas à obtenir un listener pour ces boutons, j'ai essayé de réécrire la méthode onoptionitemselectedmethod mais rien ne se passe. Ps : ma boîte de dialogue est presque en plein écran, je ne peux donc pas voir la boîte de dialogue de l'activité (je n'ai pas trouvé de méthode put on top).

Je serais heureux d'essayer toute solution que vous pourriez me proposer.

Merci beaucoup.

public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    menu.add(Menu.NONE,0,Menu.NONE,c.getString(R.string.home));
    menu.add(Menu.NONE,4,Menu.NONE,c.getString(R.string.report));
    return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
    super.onOptionsItemSelected(item);
    if(item.getItemId()==0){
        getOwnerActivity().startActivity(new Intent(c,Home.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
    }
    else
        if(l>1)
            getOwnerActivity().startActivity(new Intent(c,report.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
        else
            dismiss();
    return true;
}

2voto

Keenora Fluffball Points 1083

Peut-être que ce petit extrait de mon application vous aidera :

private static final int REFRESH_ID = Menu.FIRST + 1;

public boolean onCreateOptionsMenu(Menu menu) {
  boolean result = super.onCreateOptionsMenu(menu);
  menu.add(0, REFRESH_ID, 0, R.string.menu_refresh).setIcon(R.drawable.and_refresh);
  return result;
}

public boolean onMenuItemSelected(int featureId, MenuItem item) {
  switch (item.getItemId()) {
    case REFRESH_ID: {
      // Do whatever you want here!
      return true;  
    }
  }
  return super.onMenuItemSelected(featureId, item);
}

Comme vous pouvez le voir, j'ai des constantes pour mes éléments de menu. Ces éléments reçoivent le nombre Menu.First + n comme entier. Pour chaque élément, je compte. C'est plus facile que de le changer à chaque fois ;) Et dans le onMenuItemSelected vous pouvez changer ces constantes facilement. J'espère que cela vous aidera !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X