2012-05-06 4 views
0

Est-il possible d'avoir une boîte de dialogue, cliquez sur un bouton de cette boîte de dialogue pour accéder à une autre boîte de dialogue, puis cliquez sur un autre bouton dans la boîte de dialogue précédente.Alerte de dialogue dans Android

Dialog - > Dialog2 -> Dialog 

Ceci est mon code:

private void showIBW() { 

    final String[] frame = { "Small", "medium", "large" }; 

    AlertDialog.Builder framechoice = new AlertDialog.Builder(this); 
    framechoice.setTitle("please choose your frame size"); 
    framechoice.setNeutralButton("what's this?", 
      new DialogInterface.OnClickListener() { 

       public void onClick(DialogInterface dialog, int which) { 

        AlertDialog.Builder help = new AlertDialog.Builder(getApplicationContext()); 
        help.setTitle("Frame explanation"); 
        help.setMessage("cheikh is not helpful"); 
        help.setNeutralButton("okay thanks", new DialogInterface.OnClickListener() { 

         public void onClick(DialogInterface dialog, int which) { 

          ////// Here i want this button to get me back to the "Framechoice" dialog/// 


         } 
        }); 
        help.create(); 
        help.show(); 
       } 

      }); 
    framechoice.setItems(frame, new DialogInterface.OnClickListener() { 

     public void onClick(DialogInterface dialog, int which) { 

      SharedPreferences customSharedPreference = getSharedPreferences(
        "myCustomSharedPrefs", Activity.MODE_PRIVATE); 

      Toast.makeText(getApplicationContext(), frame[which], 
        Toast.LENGTH_LONG).show(); 

      String Height = customSharedPreference.getString("heightpref", 
        null); 
      float height = Integer.parseInt(Height); 

      float weight1 = ((height/100) * (height/100)) * 20; 
      float weight2 = ((height/100) * (height/100)) * 25; 

      AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(
        CalculationsActivity.this); 
      dialogBuilder.setTitle("Ideal weight calculator"); 

      dialogBuilder 
        .setMessage("Your ideal weight is between:\n   " 
          + Math.round(weight1) 
          + " Kg to " 
          + Math.round(weight2) + " kg"); 
      dialogBuilder.setPositiveButton("ok", 
        new DialogInterface.OnClickListener() { 

         public void onClick(DialogInterface dialog, 
           int which) { 

          Intent u = new Intent(); 
          u.setClass(CalculationsActivity.this, 
            CalculationsActivity.class); 
          startActivity(u); 
         } 
        }).create(); 
      dialogBuilder.show(); 

     } 

    }).create(); 
    framechoice.show(); 


} 
+2

Qu'est-ce qui vous empêche d'essayer de le faire? –

+0

J'ai essayé, mais à chaque fois, j'obtiens un pointeur nul quand je clique sur le bouton dans Dialog2. Vous voulez voir le code? – callback

+0

Oui, montrez-moi le code approprié. –

Répondre

0

si vous cherchez la solution à

////// Ici, je veux ce bouton pour me faire revenir à la dialogue "Framechoice" ///

remplacer par

dialog.cancel(); 

voir si cette aide.

+0

Cela ferme la boîte de dialogue, mais ne parvient pas à la précédente .. – callback

+0

Pourquoi vous essayez de faire appeler 'setNeutralButton' et 'setItems' dans le même AlertDialog? Pouvez-vous me montrer une image de Dialog comment la boîte de Dilog ressemblera avec ces deux? –

0

Vous devez utiliser votre activité en tant que contexte pour AlertDialog.Builder et non le contexte c de l'application.

plus d'info ici:

Why does AlertDialog.Builder(Context context) only accepts Activity as a parameter?

https://groups.google.com/forum/?fromgroups#!msg/android-beginners/22dlKekP_V0/t8XfhoDlsQsJ

+1

Il sera utile à d'autres si vous pouvez modifier la réponse pour inclure une description informative ou un pointeur vers quelle est la différence entre le contexte d'application et d'activité? –

Questions connexes