IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Problème pour réaliser une action lors du clique sur le bouton menu ou back


Sujet :

Composants graphiques Android

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 39
    Points : 14
    Points
    14
    Par défaut Problème pour réaliser une action lors du clique sur le bouton menu ou back
    Bonjour,

    Problème:

    Je souhaite afficher un menu lors d'un clique sur le bouton menu
    et faire apparaitre une fenêtre alerte dialogue lors du clique sur le bouton retour afin de savoir si l'utilisateur souhaite bien quitter l'application.

    Mais je n'arrive pas a construire mon code pour que les boutons fassent les deux actions ci-dessus.

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    	public boolean onCreateOptionsMenu(android.view.Menu menu) 
    	{
    	 super.onCreateOptionsMenu(menu);
    	 MenuInflater inflater = getMenuInflater();
    	  //R.menu.menu est l'id de notre menu
    	  inflater.inflate(R.menu.menuoption,menu);
    	  return true;
    	}
     
    	public boolean onOptionsItemSelected (MenuItem item)
    	{
    	  switch(item.getItemId())
    	  {
    	  	case R.id.item1:
    	  		CODE_DE_MON_ACTIVITE=3;
    	   		Intent intent3 = new Intent(AvionSolaire.this, NoticeUtilisateur.class);
    	   		//intent.putExtras(objetbunble);
    	   		startActivityForResult(intent3, CODE_DE_MON_ACTIVITE);
    	  		return true;
     
    	    case R.id.item2:
    	    	CODE_DE_MON_ACTIVITE=2;
    	   		Intent intent2 = new Intent(AvionSolaire.this, TailleDonneesLegende.class);
    	   		//intent.putExtras(objetbunble);
    	   		startActivityForResult(intent2, CODE_DE_MON_ACTIVITE);
    		    return true;
    	  }
    	  return super.onOptionsItemSelected(item);
    	}
     
     
    	/*
    	// méthodes qui géres tout les appuis sur les boutons de type (menu,retour,...) et qui affiche une informations,activité,.. en retour
        public boolean onKeyDown(int keyCode, KeyEvent event) 
        {
        	//Log.i("A","choix pause ou destroy");
                if (keyCode == KeyEvent.KEYCODE_BACK) 
                {
                	AlertDialog.Builder alertDialog = new AlertDialog.Builder(AvionSolaire.this);
           		 
                    // Setting Dialog Title
                    alertDialog.setTitle("Confirmation de votre Action");
             
                    // Setting Dialog Message
                    alertDialog.setMessage("Etes vous sur de vouloir quitter l'application?");
             
                    // Setting Icon to Dialog
                    alertDialog.setIcon(R.drawable.ic_launcher);
             
                    // Setting Positive "Yes" Button
                    alertDialog.setPositiveButton("OUI", new DialogInterface.OnClickListener() 
                    {
                        public void onClick(DialogInterface dialog,int which) 
                        {
                        // Write your code here to invoke YES event
                        //Toast.makeText(getApplicationContext(), "Arret de l'application", Toast.LENGTH_SHORT).show();
                		finish();
                        };
                    });
             
                    // Setting Negative "NO" Button
                    alertDialog.setNegativeButton("NON", new DialogInterface.OnClickListener() 
                    {
                        public void onClick(DialogInterface dialog, int which) 
                        {
                        // Write your code here to invoke NO event
                       // Toast.makeText(getApplicationContext(), "Poursuite de l'application", Toast.LENGTH_SHORT).show();
                        dialog.cancel();
                        }
                    });
             
                    // Showing Alert Message
                    alertDialog.show();
                }
                
                if(keyCode==KeyEvent.KEYCODE_MENU)
                {
                	
                }
                
                return true;
         }
        */
    Les méthodes fonctionnent indépendamment mais pas en même temps.
    si je met les deux méthodes:
    la méthodes
    public boolean onKeyDown(int keyCode, KeyEvent event)
    prend le pas sur l'autre
    (public boolean onCreateOptionsMenu(android.view.Menu menu) )

    J'ai donc essayer d'appeler la méthode
    (public boolean onCreateOptionsMenu(android.view.Menu menu) )
    dans la méthode
    public boolean onKeyDown(int keyCode, KeyEvent event)
    mais j'arrive a rien.

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    A propos du "exit button"/"confirmation"... c'est la deuxième fois en une semaine que cette question est posée sur le forum...

    La meilleure réponse est contenu dans ce post de Reto Meier himself (tout développeur Android se doit de suivre Reto Meier sur Google+ )
    http://blog.radioactiveyak.com/2010/...n-android.html

    Ou en vidéo:
    [ame="http://www.youtube.com/watch?v=631T7B8HOv4"](?°?°??? ??? - YouTube[/ame]


    Pour ce qui est de onKeyDown, il ne faut à priori pas l'utiliser (rien ne dit que le back correspond à une "key").
    Utiliser onBackPressed() à la place.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 39
    Points : 14
    Points
    14
    Par défaut
    Merci nicroman pour ton aide.
    la méthode onBackPressed() marche à merveille.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème pour assigner une action à un JButton
    Par Knluz dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 01/06/2015, 19h12
  2. Problème pour réaliser une macro "de boucles" dans VBA
    Par philou7176 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/12/2008, 15h41
  3. [JQuery] Du texte dans une div lors du clique sur un lien
    Par Nimothenicefish dans le forum jQuery
    Réponses: 5
    Dernier message: 28/11/2008, 15h33
  4. Réponses: 10
    Dernier message: 11/04/2008, 13h37
  5. Réponses: 2
    Dernier message: 22/01/2006, 01h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo