2016-04-15 24 views
-4

アプリが起動されたときに初めて起動するイントロ画面を追加しようとしました。その後、ログインページを直接ロードします 私は以下のガイドを使って達成しましたこの初めてアプリ起動イントロエラー(ビューページ)

SharedPreferences sp = getSharedPreferences(MyPrefs, 0); 
    if (sp.getBoolean("first", true)) { 
     SharedPreferences.Editor editor = sp.edit(); 
     /*editor.putBoolean("first", false);*/ 
     sp.edit().putBoolean("first", false).commit(); 
     editor.commit(); 
     Intent intent = new Intent(this, login.class); //call your ViewPager class 
     startActivity(intent); 
    } 

しかし、アプリはイントロ部分をスキップし、初めてのアプリを使用してログインページをロードし、再び 立ち上げたときに、私はこの 感謝を逆にすることができますどのようにイントロページをロード

+0

(sp.getBoolean( "first"、true))if(sp.getBoolean( "first"、false))とlemmeがhappennedを知っている場合は、私は後でそれを説明します:)私はそれを達成するためのよりよい方法を提案することができます:)そのただのパッチあなたのコードに:) –

+0

条件を変更する –

+0

@SandeepBhandari返信ありがとう、falseに変更するとイントロ画面を表示するのに役立ちますが、アプリが次回起動されたときにも表示されます。 – 7rocker

答えて

0
SharedPreferences sp = getSharedPreferences(MyPrefs, 0); 
    if(sp.contains("first"){ 
     Intent intent = new Intent(this, login.class); //call your ViewPager class 
     startActivity(intent); 
    } 
    else{ 
     SharedPreferences.Editor editor = sp.edit(); 
     sp.edit().putBoolean("first", true).commit(); 
     editor.commit(); 
    } 

説明:あなたが最初の時間変数のためのあなたのアプリを起動 共有設定では存在しません:)あなたgetBooleanは、「最初の」ではないデフォルト値がケースに返すようにすることを指定しているため、「最初の」本当であることが分かりました:)あなたのコードはすべてtossに向いていました:)

正しい方法:) "最初の"キーワードが存在するかどうか最初にチェックしますか?そうでない場合は、最初にイントロ画面を表示していることを意味します:)しかし、値の真で最初にキーを入力することを忘れないでください:)

次回、最初のキーを起動すると、だから、あなたは2回目の起動を知っています:)あなたはイントロをスキップしてログインアクティビティを起動できます:)

あなたが知る必要があるすべての "first"とあなたの自己を気にしないでくださいこのキーが存在するかどうかはすべてです:)

+0

@Sandeep Bhandariありがとうございました! – 7rocker

1

ますあなたの状態に問題があります。このコードを試してみてください:

SharedPreferences sp = getSharedPreferences(MyPrefs, 0); 
if (sp.getBoolean("first", true)) { 
    sp.edit().putBoolean("first", false).apply(); 

    // Show Intro Activity 
} else { 
    Intent intent = new Intent(this, login.class); 
    startActivity(intent); 
} 

最初に、最初かどうかを確認します。そうであれば、イントロActivityを表示します。それが初めてでない場合は、ログインActivityを表示します。

注意SharedPreferencesコードの一部を削除しましたが、その一部は不必要でした。私もcommit()apply()に変更しました。

関連する問題