PDA

Ver la Versión Completa : AlertDialog y otra duda


varoo10
25/04/13, 20:25:06
Tengo dos dudas que mas o menos son lo mismo...

La primera. Tengo un AlertDialog sencillito con un texto, encabezado y botón Aceptar, entonces lo que quiero conseguir es que al darle a aceptar no aparezca nunca más en la aplicación al iniciarla de nuevo... una especie de changelog al iniciar por primera vez, ahí dejo el código:


AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Probando" +
"Pruebas y más pruebas.")
.setTitle("Características")
.setCancelable(false)
.setNeutralButton("Aceptar",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});

AlertDialog dialog = builder.create();
dialog.show();


Y la otra duda es que quisiera hacerle en próximas versiones unas pantallas para saber cómo navegar que solo se vean al inicio y una vez pase la última activity no vuelvan a usarse más pero supongo que el código será más o menos igual.

Gracias de antemano.

mocelet
25/04/13, 23:56:15
Guarda en SharedPreferences una variable cuando lo muestres, y comprueba su valor antes de mostrarlo.

varoo10
26/04/13, 09:15:31
Uf aún no me manejo con SharedPreferences... será hora de mirarmelas ya. Ya te cuento cuando lp tenga.

Si sale alguna otra respuesta encantado de oirla.

Guarda en SharedPreferences una variable cuando lo muestres, y comprueba su valor antes de mostrarlo.

rinxe
26/04/13, 11:47:05
Lo que dice el compañero mocelet funciona de maravilla.

En mi caso alguna vez he creado pantallas de estas y lo que he hecho a sido poner un checkbox con un texto al lado "no volver a mostrar".

Entonces al cerrar el AlertDialog si esta marcado el checkbox guardo un valor en SharedPreferences. Asi cada vez que se abra la aplicacion compruebo ese dato y determina si se tiene que mostrar otra vez o no.

varoo10
26/04/13, 14:23:18
Lo de poner el checkbox era lo que pensaba hacer pero claro no sabía muy bien cómo iba el proceso... Pues voy a leer sobre SharedPreferences.

Gracias a los dos.

Lo que dice el compañero mocelet funciona de maravilla.

En mi caso alguna vez he creado pantallas de estas y lo que he hecho a sido poner un checkbox con un texto al lado "no volver a mostrar".

Entonces al cerrar el AlertDialog si esta marcado el checkbox guardo un valor en SharedPreferences. Asi cada vez que se abra la aplicacion compruebo ese dato y determina si se tiene que mostrar otra vez o no.

varoo10
28/04/13, 10:14:13
Podéis facilitarme algún tutorial recomendado sobre SharedPreferences? No me entero muy bien con los cursos que tengo... y ya se sabe que la primera vez duele xD

rinxe
30/04/13, 11:40:10
Aqui te lo explican bastante bien, son 3 lineas de codigo para guardar y otras 3 para recuperar, es muy facil ya lo veras: http://developer.android.com/guide/topics/data/data-storage.html

varoo10
30/04/13, 16:03:45
Perdonad pero lo conseguí ayer y se me pasó poner el código que hice.

public void onClick(DialogInterface dialog, int which) {
String checkBoxResult = "NOT checked";
if (dontShowAgain.isChecked()) checkBoxResult = "checked";
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("skipMessage", checkBoxResult);
editor.commit();
return;

} });
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
String skipMessage = settings.getString("skipMessage", "NOT checked");
if (!skipMessage.equalsIgnoreCase("checked") ) adb.show();
}

rinxe
01/05/13, 12:51:24
Nada no te preocupes, lo importante es que lo has solucionado ;-) A seguir programando la app