Respuestas:
Ese es un simple diálogo de alerta , Federico le dio un sitio donde puede buscar cosas.
A continuación, se muestra un breve ejemplo de cómo se puede crear un cuadro de diálogo de alerta.
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 con una clase YesNoPreference incorporada que hace exactamente lo que quieres (un diálogo de confirmación con opciones de sí y no). Vea el código fuente oficial aquí .
Desafortunadamente, está en el com.android.internal.preference
paquete, lo que significa que es parte de las API privadas de Android y no puede acceder a él desde su aplicación (las clases de API privadas están sujetas a cambios sin previo aviso, de ahí la razón por la que Google no le permite acceder a ellas).
Solución: simplemente vuelva a crear la clase en el paquete de su aplicación copiando / pegando el código fuente oficial del enlace que proporcioné. He intentado esto y funciona bien (no hay ninguna razón por la que no debería).
A continuación, puede agregarlo a su preferences.xml
preferencia como cualquier otra. Ejemplo:
<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" />
Que se ve así:
Use Intent Preference si está usando la pantalla xml de preferencias o si está usando su pantalla personalizada, entonces el código sería el siguiente
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);
Y luego cree una clase de actividad similar a la que se muestra a continuación. Como diferentes personas y diferentes enfoques, puede usar cualquier enfoque que desee, esto es solo un ejemplo.
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();
}}
Como se dijo antes, hay varias formas de hacer esto. esta es una de las formas en que puede hacer su tarea, por favor acepte la respuesta si siente que ha obtenido lo que deseaba.