所以我正在创建一个应用程序,向用户显示一个框网格,当他们点击一个框时,它会向他们提出一个问题。如果他们得到正确的问题,那么特定的盒子就会出现一个勾号,如果他们弄错了,那么盒子的网格保持不变。我遇到的唯一麻烦是保存用户在进入新活动或关闭应用程序后获得的距离。
我试图搜索它并且只能找到onPause()
,这不起作用,因为有关用户点击的框的信息都在一个方法中,并且在方法之外无法达到该值。我看到的另一个选项是sharedPreference
,我似乎无法理解它与我的问题有什么关系。
抱歉超长信息,非常感谢您的回复!
答案 0 :(得分:2)
我建议在片段中打开问题/答案而不是新活动。或者,正如您所提到的,我建议在SharedPreferences中保存复选框状态,然后您可以在返回复选框活动后从SharedPreferences中读取。 你可以保存到SharedPreferences,通过类似的方式保存每个复选框(其中box_1是一个复选框):
SharedPreferences pref = context.getSharedPreferences("appname", Context.MODE_PRIVATE);
pref.edit().putBoolean("box_1", box_1.isChecked()).commit();
对所有复选框重复此操作。当您返回复选框活动时,只需根据之前存储的值进行设置,如下所示:
SharedPreferences pref = context.getSharedPreferences("appname", Context.MODE_PRIVATE);
box_1.setChecked(pref.getBoolean("box_1", false));
答案 1 :(得分:2)
所以我给你的建议是把这些数据保存到数据库中并处理复选框点击更新数据库通过它的唯一行ID,这样当你关闭应用程序并再次打开你的应用程序时你就拥有了数据以及复选框单击,这时您将从数据库获取数据并将这些数据设置为模型类,并使用List<MobelClass>
这些列表进入回收器网格适配器。
这是最好的解决方案,希望对您有所帮助。