2010-10-20 17 views
24

En mi aplicación de Android, tengo que diseñar una pantalla de bienvenida que se mostrará al usuario una sola vez después de que se instala y abre la aplicación. La aplicación en cuestión es una aplicación impulsada por una base de datos y me gustaría incluir de 3 a 4 pantallas para ayudar al usuario a crear recursos reutilizables para usar dentro de la aplicación y algunos consejos. Serán Dialog Alerts con la última pantalla de bienvenida que muestra la casilla de verificación "No volver a mostrar".¿Cómo mostrar una pantalla de bienvenida de una sola vez?

El problema es realmente, cómo mostrar la pantalla de bienvenida solo una vez. Cualquier ayuda o indicadores a ese efecto son muy apreciados.

+0

hecho ahora lo básico –

Respuesta

22

Guarde una bandera en las Preferencias cuando inicie la aplicación, después de haber hecho las cosas de la pantalla de bienvenida. Compruebe esta bandera antes de mostrar la pantalla de bienvenida. Si la bandera está presente (en otras palabras, si no es la primera vez), no la muestre.

+0

Así como en las Preferencias Preferencias Android? Eso podría ser lo que estoy buscando. Le dará una oportunidad. –

+0

Sí, eso es lo que quise decir. No tengo idea si esto es "cómo se hace" en Android, pero es cómo lo hago. :) – benvd

+1

Preferencias? Debería notarlo por mí. Lo estamos haciendo ahora al almacenar algunas configuraciones en los archivos. – Tima

31

Aquí hay un código de mi aplicación que hace precisamente eso.

En su actividad:

SharedPreferences mPrefs; 
final String welcomeScreenShownPref = "welcomeScreenShown"; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    mPrefs = PreferenceManager.getDefaultSharedPreferences(this); 

    // second argument is the default to use if the preference can't be found 
    Boolean welcomeScreenShown = mPrefs.getBoolean(welcomeScreenShownPref, false); 

    if (!welcomeScreenShown) { 
     // here you can launch another activity if you like 
     // the code below will display a popup 

     String whatsNewTitle = getResources().getString(R.string.whatsNewTitle); 
     String whatsNewText = getResources().getString(R.string.whatsNewText); 
     new AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_alert).setTitle(whatsNewTitle).setMessage(whatsNewText).setPositiveButton(
       R.string.ok, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int which) { 
         dialog.dismiss(); 
        } 
       }).show(); 
     SharedPreferences.Editor editor = mPrefs.edit(); 
     editor.putBoolean(welcomeScreenShownPref, true); 
     editor.commit(); // Very important to save the preference 
    } 

} 
+0

Esto podría funcionar mejor de lo que podría conjurar. Solo una pregunta rápida. ¿Para qué es el número de versión? –

+0

@ Siddharth: supongo que el mensaje aún aparece (una vez) después de actualizar la aplicación. – benvd

+0

Tiene sentido. ¿Cuál es su opinión sobre el código publicado? –

2

he creado un SplashScreen con esto:

 
package com.olidroide; 


import android.app.Activity; 
import android.app.ProgressDialog; 
import android.content.Intent; 
import android.os.Bundle; 
import android.os.Handler; 
import android.os.Message; 


public class SplashScreen extends Activity{ 
/** Called when the activity is first created. */ 
    public ProgressDialog myDialog; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.splashscreen); 

     new Handler().postDelayed(new Runnable() { 

      public void run() { 
       myDialog = ProgressDialog.show(SplashScreen.this,"", "Loading", true); 

       Intent intent=new Intent(SplashScreen.this,OtherActivity.class); 
       SplashScreen.this.startActivity(intent); 
       myDialog.dismiss(); 
       SplashScreen.this.finish();  
      } 

     }, 3000);// 3 Seconds 
    } 
}; 
+1

Realmente no es una pantalla de bienvenida. Necesito mostrar algunos consejos y sugerencias cuando un usuario instala y ejecuta la aplicación por primera vez. Más como un tutorial y un recorrido. Gracias por la ayuda, aunque ... :) –

Cuestiones relacionadas