Réponses:
C'est une simple boîte de dialogue d'alerte , Federico vous a donné un site où vous pouvez rechercher des choses.
Voici un court exemple de la manière dont une boîte de dialogue d'alerte peut être créée.
new AlertDialog.Builder(this)
.setTitle("Title")
.setMessage("Do you really want to whatever?")
.setIcon(android.R.drawable.ic_dialog_alert)
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
Toast.makeText(MainActivity.this, "Yaay", Toast.LENGTH_SHORT).show();
}})
.setNegativeButton(android.R.string.no, null).show();
Android est livré avec une classe YesNoPreference intégrée qui fait exactement ce que vous voulez (une boîte de dialogue de confirmation avec des options oui et non). Voir le code source officiel ici .
Malheureusement, il est dans le com.android.internal.preference
package, ce qui signifie qu'il fait partie des API privées d'Android et que vous ne pouvez pas y accéder depuis votre application (les classes d'API privées sont sujettes à modification sans préavis, d'où la raison pour laquelle Google ne vous permet pas d'y accéder).
Solution: recréez simplement la classe dans le package de votre application en copiant / collant le code source officiel à partir du lien que j'ai fourni. J'ai essayé ceci, et cela fonctionne bien (il n'y a aucune raison pour que cela ne le soit pas)
Vous pouvez ensuite l'ajouter à votre preferences.xml
préférence comme n'importe quelle autre. Exemple:
<com.example.myapp.YesNoPreference
android:dialogMessage="Are you sure you want to revert all settings to their default values?"
android:key="com.example.myapp.pref_reset_settings_key"
android:summary="Revert all settings to their default values."
android:title="Reset Settings" />
Ce qui ressemble à ceci:
Utilisez la préférence d'intention si vous utilisez l'écran de préférence xml ou vous si vous utilisez votre écran personnalisé, le code serait comme ci-dessous
intentClearCookies = getPreferenceManager().createPreferenceScreen(this);
Intent clearcookies = new Intent(PopupPostPref.this, ClearCookies.class);
intentClearCookies.setIntent(clearcookies);
intentClearCookies.setTitle(R.string.ClearCookies);
intentClearCookies.setEnabled(true);
launchPrefCat.addPreference(intentClearCookies);
Et puis créez une classe d'activité un peu comme ci-dessous, en tant que personnes différentes comme approche différente, vous pouvez utiliser n'importe quelle approche que vous aimez, ce n'est qu'un exemple.
public class ClearCookies extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
showDialog();
}
/**
* @throws NotFoundException
*/
private void showDialog() throws NotFoundException {
new AlertDialog.Builder(this)
.setTitle(getResources().getString(R.string.ClearCookies))
.setMessage(
getResources().getString(R.string.ClearCookieQuestion))
.setIcon(
getResources().getDrawable(
android.R.drawable.ic_dialog_alert))
.setPositiveButton(
getResources().getString(R.string.PostiveYesButton),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
//Do Something Here
}
})
.setNegativeButton(
getResources().getString(R.string.NegativeNoButton),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
//Do Something Here
}
}).show();
}}
Comme indiqué précédemment, il existe plusieurs façons de procéder. c'est l'une des façons dont vous pouvez faire votre tâche, veuillez accepter la réponse si vous sentez que vous avez obtenu ce que vous vouliez.