Risposte:
Questa è una semplice finestra di dialogo di avviso , Federico ti ha dato un sito dove puoi cercare le cose.
Ecco un breve esempio di come creare una finestra di dialogo di avviso.
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 viene fornito con una classe YesNoPreference incorporata che fa esattamente ciò che desideri (una finestra di dialogo di conferma con opzioni sì e no). Vedi il codice sorgente ufficiale qui .
Sfortunatamente, è nel com.android.internal.preference
pacchetto, il che significa che fa parte delle API private di Android e non puoi accedervi dalla tua applicazione (le classi API private sono soggette a modifiche senza preavviso, da qui il motivo per cui Google non ti consente di accedervi).
Soluzione: ricrea la classe nel pacchetto della tua applicazione copiando / incollando il codice sorgente ufficiale dal link che ho fornito. L'ho provato e funziona bene (non c'è motivo per cui non dovrebbe).
Puoi quindi aggiungerlo alla tua preferences.xml
come qualsiasi altra preferenza. Esempio:
<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" />
Che assomiglia a questo:
Usa la preferenza di intento se stai usando la schermata xml delle preferenze o se stai usando la tua schermata personalizzata, il codice sarà come di seguito
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);
E poi crea una classe di attività un po 'come sotto, come persone diverse con un approccio diverso puoi usare qualsiasi approccio che ti piace questo è solo un esempio.
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();
}}
Come detto prima, ci sono molti modi per farlo. questo è uno dei modi in cui puoi svolgere il tuo compito, per favore accetta la risposta se ritieni di aver ottenuto ciò che volevi.