0

私のアプリでは、ユーザーが最初に入ったときに、2 つの日付を追加することができ、アプリは日数を計算します。次に、この結果がデータベースに書き込まれ、メインのアクティビティ (arxiki.class と呼ばれる) の textView にも出力されます。この結果をアプリに記憶させ、ユーザーがメイン アクティビティに移動するたびに出力するようにします。

私が作ったように、ユーザーがアクティビティを変更したりアプリを閉じたりするたびに、次回アプリが日付を入力するように再度要求し、データベースに新しいデータを作成します.どうすれば常に最初の結果を取得できますか?ありがとう

日付の結果を保存するための私のコードは次のとおりです。

DbXronia entry_add = new DbXronia(arxiki.this);
            entry_add.open();
            entry_add.createEntry_xronia(meres);
            entry_add.close();
4

2 に答える 2

1

私が作ったように、ユーザーがアクティビティを変更したりアプリを閉じたりするたびに、次回アプリが日付を入力するように再度要求し、データベースに新しいデータを作成します.どうすれば常に最初の結果を取得できますか?ありがとう

したがって、ユーザーに日付を 1 回だけ尋ねます (アプリが起動されたときのみ)。この「アルゴリズム」は難しいものではありません。ユーザーが日付を入力し、値がデータベースに書き込まれて「日付が保存されている」状態を保存する場合、何らかのメカニズムが必要です。

目標を達成するために使用できますSharedPreferences。値がデータベースに書き込まれたら、「このアクション」を SharedPreferences に保存し、次にユーザーがアプリを起動したときに、アクションをラップする条件を作成します。

擬似コード:

// saving action
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.edit().putBoolean("isInserted", true);

// retrieve value
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
boolean isInserted = prefs.getBoolean("isInserted", false);

if (!isInserted) {
   // user can add dates
}
else {
  // do your stuff
}
于 2013-03-23T09:40:56.590 に答える