dans votre xml utilisez ce qui suit au lieu de DialogPreference:
<Preference
android:title="This acts as a button"
android:key="button"
android:summary="This can act like a button to create it's own dialog"/>
Puis, dans la java:
Preference button = (Preference)findPreference("button");
button.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference arg0) {
showDialog(MY_DIALOG); // let's say MY_DIALOG is 'final int MY_DIALOG = 1;' in the class body
return false;
}
});
Ensuite, ajoutez à votre corps de classe:
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case SHOW_APP_STRING:
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View mylayout = inflater.inflate(R.layout.mylayout, null);
final AlertDialog myDialog = new AlertDialog.Builder(this)
.setView(mylayout)
.show();
//The buttons are below the dialog so you can close the dialog within your button listeners
Button save = (Button)myLayout.findViewById(R.id.save);
Button cancel = (Button)myLayout.findViewById(R.id.cancel);
//set onClickListeners for both of your buttons
return myDialog;
}
}
Je suis Je ne sais pas si c'est la meilleure méthode, mais c'est comme ça que je le fais et ça marche.
Merci beaucoup pour me pousser dans la bonne direction. Avec votre aide, je pourrais réaliser ce que je voulais. – zng
Cette solution est inutilement complexe. Réglez simplement le texte des deux boutons sur null et ils disparaîtront. setPositiveButtonText (null); setNegativeButtonText (null); Dans le constructeur. –