最初に私のアプリについて少し。そのクイズアプリ。質問を表示するメイン画面があり、すぐに読み込まれ、矢印が表示previous
さnext
れ、他のクイズの質問に移動します。異なる質問データを渡すだけで同じレイアウトを何度も使用しているので、[次へ]ボタンをクリックするintent
と、同じクラスが異なるデータで起動します。私の単一のレイアウトの開始時に、ユーザーが免責事項を非表示にするためにクリックしたかどうかを確認するための少しのチェックがあります。
そのため、アプリの起動時に免責事項が表示されます。dismiss
ボタンとDont show this again
チェックボックスがあります。を使用してチェックボックスを完全に機能させることができますSharedPreferences
が、ボタンを押すと問題が発生しDismiss
ます。同じレイアウトを再利用しているため、ユーザーが新しい質問に移動するたびに、免責事項が表示されます。アプリが読み込まれたときなど、最初の画面にのみポップアップ表示したい。
SharedPreference
ユーザーがヒットしたときに免責事項を非表示にするように別の設定を試みましdismiss
たが、一度非表示にすると、ユーザーがアプリを再度ロードしたときにその共有設定が設定されたままになるため、元に戻りません。私の問題は、設定をどこに戻すかを知ることです!リセットしてみましonPause()
たが、うまくいきませんでした。
それで、私が求めているのは、アクティビティが最初にロードされるアクティビティであるかどうかをどのように判断できるので、その後の各画面ではなく、免責事項のチェックのみを実行できますか?
ありがとう。
編集:これが私のOnCreate()
方法です:
final static String disclaimerShownPref = "disclaimerShown";
final static String disclaimerShownOnce = "disclaimerShownThisSession";
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
mPrefs = PreferenceManager.getDefaultSharedPreferences(this);
//Checks to see if the boolean is set
//The second argument is the default to use if the preference can't be found
if(!mPrefs.getBoolean(disclaimerShownPref, false))
{
if(!mPrefs.getBoolean(disclaimerShownOnce, true))
{
new Disclaimer(this);
}
}
topMostLayout=buildHomeScreen();
setContentView(topMostLayout);
}