我正在开发一个测验应用。情况是:
用户通过触摸按钮选择测验,该按钮会打开一个新的活动。在此活动内部,用户必须在TextView上写一些内容,然后按另一个按钮以查看文本是否正确。如果是正确的,则打开另一个最后一个活动。
此刻,当用户返回主活动时,他必须在那里选择测验,如果他选择相同的测验,他必须再次写下答案。
我需要找到一种方法来保存答案,以便应用程序不会显示他必须写下答案的活动。它应该立即跳到最后一个活动。我知道我可以使用SharedPreferences来管理它,但我不知道如何设置它。
答案 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