6
votes

Préférence avec confirmation de la boîte de dialogue

J'ai du mal à faire une préférence avec la boîte de dialogue, aucune des méthodes suggérées sur le site ne fonctionne pour moi. Voici donc ce que j'ai d'abord. Dans la MainActivité, j'ai cette

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

<Preference
    android:summary="clears all data"
    android:title="Reset Data" >
    <intent
        android:targetClass="com.example.myapp.settings.DialogActivity"
        android:targetPackage="com.example.myapp" >
    </intent>
</Preference>


0 commentaires

3 Réponses :


1
votes

Dans ce cas, si vous pouvez utiliser Android Studio, vous pouvez cliquer avec le bouton droit de la souris sur le dossier contenant vos activités et choisir de créer un nouveau Paramètres de paramètres code>.

Ensuite, dans votre XML pour la barre d'action en MainActivity, configurez le bouton de réglage comme celui-ci: P>

AlertDialog.Builder alert = new AlertDialog.Builder(self);
alert.setTitle(getResources().getString(R.string.action_about));
//Set up your AlertDialog and buttons
alert.setMessage(message);
alert.setNegativeButton("Okay", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
        // Canceled.
    }
});
alert.setCancelable(true);
alert.show();


4 commentaires

Où puis-je placer cette méthode, comment démarrer la classe qui a cette méthode, s'il vous plaît expliquer plus


En fait, je souhaite que cette boîte de dialogue soit affichée dans la préfectureActivité, comme lorsque je sélectionne des paramètres dans le menu de la MainActivity, la préférence s'ouvre et la première option serait des données claires, donc je souhaite que la boîte de dialogue soit affichée avec confirmation.


D'accord. Dans ce cas, si vous pouvez utiliser Android Studio, vous pouvez cliquer avec le bouton droit sur le dossier contenant vos activités et choisir de créer un nouveau Paramètres de paramètres . Vous pouvez toujours utiliser mon code sur la construction d'un AlertDialog dans votre auditeur dans ParamètresActivity .


Et j'ai ajouté des codes supplémentaires dans ma réponse.



6
votes

Vous pouvez prolonger le DialogPreference . Remplacez la méthode ondialogcled code>, appelée lorsque la boîte de dialogue code> se ferme. L'argument à la méthode indique si l'utilisateur a sélectionné le bouton positif code> ou négatif code>.

personnagedialogpreference.java em>: p> xxx PRE>

Préférences.xml em> p>

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <com.example.test1.CustomDialogPreference
        android:key="pref_dialog"
        android:title="dialog"/>
</PreferenceScreen>


1 commentaires

J'aimerais ajouter que vous n'avez pas nécessairement besoin de remplacer la mise en page. Si vous souhaitez simplement afficher un message personnalisé avec la mise en page de confirmation par défaut, vous pouvez utiliser la méthode setDialogMessage () à l'intérieur du constructeur avec une carte d'identité de ressource à une valeur de chaîne.



0
votes

Si vous utilisez la bibliothèque de support V7, c'est un peu compliqué ... Mais je préfère suivre:

Créez d'abord la préférence p> xxx pré>

puis lier sur la préférence de fragment p >

 private void alertForClearAbsenceData(){

        AlertDialog.Builder alert = new AlertDialog.Builder(getMainActivity());

        alert.setTitle(getString(R.string.fragment_absence_alert_title));
        alert.setMessage(getString(R.string.fragment_absence_alert_message));

        alert.setCancelable(false);
        alert.setPositiveButton(R.string.fragment_absence_ok, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {


            }
        });
        alert.show();
    }


0 commentaires