2010-10-20 4 views
24

Dans mon application Android, j'ai besoin de concevoir un écran de bienvenue qui ne sera montré à l'utilisateur qu'une seule fois après l'installation et l'ouverture de l'application. L'application en question est une application axée sur la base de données et j'aimerais inclure quelques 3 - 4 écrans pour aider l'utilisateur à créer des ressources réutilisables pour une utilisation dans l'application et quelques conseils. Il s'agirait d'alertes de dialogue avec le dernier écran de bienvenue affichant la case à cocher "Ne plus afficher".Comment afficher un écran d'accueil unique?

Le problème est vraiment, comment afficher l'écran de bienvenue une seule fois. Toute aide ou pointeurs à cet effet sont très appréciés.

+0

vous fait maintenant la chose de base –

Répondre

22

Enregistrez un indicateur dans les préférences lorsque vous démarrez l'application, une fois que vous avez créé l'écran d'accueil. Vérifiez ce drapeau avant d'afficher l'écran d'accueil. Si le drapeau est présent (en d'autres termes, si ce n'est pas la première fois), ne le montrez pas.

+0

Ainsi Préférences que dans les Préférences Android? C'est peut-être ce que je cherche. Je vais essayer. –

+0

Oui, c'est ce que je voulais dire. Je ne sais pas si c'est "comment c'est fait" sur Android, mais c'est comme ça que je le fais. :) – benvd

+1

Préférences? Je devrais le remarquer pour moi. Nous le faisons maintenant en stockant certains paramètres dans les fichiers. – Tima

31

Voici un code de mon application qui ne fait que cela.

Dans votre activité:

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

Cela pourrait fonctionner mieux que ce que je pourrais évoquer. Juste une question rapide. Quel est le numéro de version pour? –

+0

@Siddharth: Je devine que le message apparaît toujours (une fois) après la mise à jour de l'application. – benvd

+0

Cela a du sens. Quelle est votre opinion sur le code affiché? –

2

J'ai créé un SplashScreen avec ceci:

 
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

Ce n'est vraiment pas un écran de démarrage. J'ai besoin d'afficher quelques conseils et astuces lorsqu'un utilisateur installe et exécute l'application pour la première fois. Plus comme un tutoriel et une visite. Merci pour l'aide en tout cas..... :) –

Questions connexes