2011-03-28 7 views
14

Je développe l'application dans android Je veux montrer AlertDialog si l'utilisateur cocher la case à cocher préférence de l'écran de préférences. alors comment je peux faire ça ..?Comment ouvrir AlertDialog à partir de l'écran des préférences?

+0

Cela nous aiderait grandement si vous nous informiez de la technologie et de la plate-forme que vous utilisez. Veuillez toujours fournir autant de contexte que possible. –

+1

Il a un tag Android ... –

+0

duplication possible de [Comment ouvrir AlertDialog de l'écran de préférence?] (Http://stackoverflow.com/questions/5457944/how-to-open-alertdialog-from-preference-screen) –

Répondre

2

Remplacer onSharedPreferenceChanged dans votre classe PreferenceActivity:

public class MyPreferences extends PreferenceActivity implements OnSharedPreferenceChangeListener { 
    ... 
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { 
     if (key.equals("MyCheckboxPreferenceKey")) { 
      //Show your AlertDialog here! 
     } 
    } 
+0

@Dharmendra Soyez plus précis dans ce que "ne fonctionne pas". – GrAnd

15

Essayez celui-ci ...

public class MyPreferences extends PreferenceActivity implements OnSharedPreferenceChangeListener { 

     public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, 
       final Preference preference) { 

     if(preference.equals("MyCheckboxPreferenceKey")) { 

      AlertDialog.Builder builder = new AlertDialog.Builder(this); 

     builder.setMessage("Your Message"); 

     builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 

      public void onClick(DialogInterface dialog, int id) { 

      //action on dialog close 
      } 

     }); 

     builder.show(); 

     } 


} 
+2

Merci, il fonctionne @vaibhav – Dharmendra

+1

@Dharmendra En fait, cela nécessite une déclaration de retour et nécessitera l'ajout de la partie principale de la méthode ci-dessous pour couvrir les "méthodes non implémentées" – LoungeKatt

+0

Je l'avais voté en cours de route, mais je reviens à lui .. J'ai un problème où la méthode onPreferenceTreeClick() n'est pas appelée. J'ai trouvé cet article pour la solution actuelle qui m'a aidé à faire fonctionner cette logique http://stackoverflow.com/a/12325780/2162226 – gnB

0
public class MyPreferences extends PreferenceActivity{ 
... 
//getting current context for builder 
AlertDialog.Builder build = new AlertDialog.Builder(this); 
//setting some title text 
build.setTitle("SomeTitle"); 
//setting radiobuttons list 
build.setSingleChoiceItems(new String[]{"One", "Two"}, 0, new OnClickListener() {        

      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       //Some behavior here  
      } 
     }); 
     build.setNegativeButton("Cancel", new OnClickListener() { 

      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       //Might be empty 
      } 
     }); 
        //creating dialog and showing 
     AlertDialog dialog = build.create(); 
     dialog.show(); 
} 

C'est tout.

Questions connexes