Comment ajouter des actions a mes boutons de l'ActionBar

Résolu
guineeguinee Messages postés 212 Statut Membre -  
guineeguinee Messages postés 212 Statut Membre -
Salut a tous,
J'ai un petit souci avec les boutons que j'ai ajouté dans mon action bar, e, fait j'ai ajouté un bouton "recherche", un bouton "partager" (qui partagera l'appli sur facebook) et un bouton "à propos" (qui ouvrira une autre activité où est affiché bon nombre d'infos sur l'appli).
J'ai ajouté les boutons, qui apparaissent sur mes écrans mais quand je cliques dessus, rien ne se passe, je voudrais de l'aide sur comment arriver à cet objectif pour que par exemple quand je cliques sur "recherche", un EditText s'affiche qui permet de saisir notre texte à rechercher.
Merci d'avance!

12 réponses

Boumekhila Moufdi Messages postés 14 Statut Membre 1
 
normalement c'est la méthode onClick() c'est elle qui peut rendre des action a des bouton :)
1
BunoCS Messages postés 16550 Statut Modérateur 3 919
 
Je cite:
par exemple quand je cliques sur "recherche", un EditText s'affiche qui permet de saisir notre texte à rechercher.
C'est ce que j'appelle "le code lié à la recherche". Là, ton menu ne fait rien. Tu as juste le squelette pour récupérer les clicks sur les options du menu. A toi de compléter.
1
BunoCS Messages postés 16550 Statut Modérateur 3 919
 
0
guineeguinee Messages postés 212 Statut Membre 38
 
Merci Buno et Boumekhila,
j'ai utilisé ta methode Buno, mais ca ne marche toujours pas, je ne sais pas si cela n'est pas dû au fait que j'ai un autre bouton "retour" dans l'ActionBar avec la flèche de retour, qui au contraire marche bien.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BunoCS Messages postés 16550 Statut Modérateur 3 919
 
ça ne marche pas, c'est-à-dire?
As-tu implémenté la méthode
onOptionsItemSelected(MenuItem item)
?
0
guineeguinee Messages postés 212 Statut Membre 38
 
Oui
Quand je cliques sur les boutons rien ne se passe toujours pas!
Voici une partie du code

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hunorde);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.menu, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_search:
return true;
case R.id.menu_share:
return true;
case R.id.menu_propos:
return true;

default:
return super.onOptionsItemSelected(item);
0
BunoCS Messages postés 16550 Statut Modérateur 3 919
 
Ah oui...L'appli fait exactement ce que tu demandes ;)

case R.id.menu_search:
   //ici, il faut mettre le code lié à la recherche
   return true;
case R.id.menu_share:
  // ici, le code lié au partage
  return true;
case R.id.menu_propos:
  // ici, le code lié à "à propos"
  return true;
0
guineeguinee Messages postés 212 Statut Membre 38
 
...le code lié à la recherche, ca veut dire ?
0
guineeguinee Messages postés 212 Statut Membre 38
 
Je ne parviens toujours pas à voir comment faire marcher cela, donc je demande encore d'être guidé.
J'ai supprimé le bouton "recherche", pour n'avoir que deux boutons maintenant "Partager" (qui partage du texte et un lien de l'application sur facebook ou twitter) et "A propos".
Merci de me dire clairement comment les configurer en Java.
0
BunoCS Messages postés 16550 Statut Modérateur 3 919
 
On ne va pas pouvoir faire plus à ta place, là...
Tu as un menu. Tu as le squelette de la fonction qui est appelée lorsque l'utilisateur appuie sur un bouton. Il te reste à écrire le code correspondant à l'action que tu veux faire. Ceci se fait à la place des commentaires que j'ai mis dans le bout de code précédent.
Par exemple, si tu veux afficher un Toast lorsque l'utilisateur appuie sur le bouton "à propos":
case R.id.menu_search:
   //ici, il faut mettre le code lié à la recherche
   return true;
case R.id.menu_share:
  // ici, le code lié au partage
  return true;
case R.id.menu_propos:
  // ici, le code lié à "à propos"
  Toast.makeText(this, "coucou", Toast.LENGTH_SHORT).show();
  return true;

0
guineeguinee Messages postés 212 Statut Membre 38
 
Je veux pas ajouter un Toast parce que le texte disparaît au bout de quelques secondes, j'ai créé un layout et je voudrais rediriger vers ce layout si on cliques sur le bouton "a propos", est-ce possible?
0
BunoCS Messages postés 16550 Statut Modérateur 3 919
 
J'ai écrit par exemple.
Après, tu fais ce que tu veux. Bien sûr qu'afficher un autre layout est possible, il suffit de lancer une autre Activity par exemple: startActivity()
0
guineeguinee Messages postés 212 Statut Membre 38
 
Merci
0