最初に私のアプリについて少し。そのクイズアプリ。質問を表示するメイン画面があり、すぐに読み込まれ、矢印が表示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);
}