如何只显示一次Activity?

时间:2014-01-21 21:23:11

标签: android sharedpreferences

我正在开发一个测验应用。情况是:

  • 用户通过触摸按钮选择测验,该按钮会打开一个新的活动。在此活动内部,用户必须在TextView上写一些内容,然后按另一个按钮以查看文本是否正确。如果是正确的,则打开另一个最后一个活动。

  • 此刻,当用户返回主活动时,他必须在那里选择测验,如果他选择相同的测验,他必须再次写下答案。

我需要找到一种方法来保存答案,以便应用程序不会显示他必须写下答案的活动。它应该立即跳到最后一个活动。我知道我可以使用SharedPreferences来管理它,但我不知道如何设置它。

1 个答案:

答案 0 :(得分:0)

首先,添加这些方法 - 用于写入和读取SharedPreference

public String getAnswer()
{
   SharedPreferences sp = getSharedPreferences("prefName",0);
   return sp.getString("myAnswer1","TheDefaultValueIfNoAnswerHasBeenSet");
}

public void setAnswer(String theAnswer)
{
   SharedPreferences.Editor editor = getSharedPreferences("prefName",0).edit();
   editor.putString("myAnswer1", theAnswer);
   editor.commit();
}

然后,当用户返回主活动时(您可以使用onBackPressed方法检查活动何时关闭),您可以写出首选项的答案。

例如,在您的测验活动中:

@Override
public void onBackPressed() {
    setAnswer(/* the String answer the user currently has */);
}

然后当您打开测验活动时,您可以阅读SharedPreference。

例如,在您的onCreate方法中:

String previousAnswer = getAnswer();

// check to see if the answer is not "TheDefaultValueIfNoAnswerHasBeenSet"
// or whatever you set the default value to be

// set the answer in the quiz to be previousAnswer