大家。我是一位认真的新秀,所以请在一定程度上原谅形式/术语问题。我承诺,我已经在这里研究了这个问题已经包括了所有相关的部分。是的,我阅读了Android资料。我也读过关于这个主题的3本书的章节!
每个人似乎都使用与用户名或声音设置相关的示例。我是否使用了错误的地方来保存这种数据类型?
作为我尝试学习Java和Android的第一个项目,我正在写一本互动小说书 - 从童年开始考虑选择自己的冒险书。
我希望应用程序在sharedPreferences中保存最新的活动名称,以便应用程序(自动或通过"加载游戏"按钮)返回到用户所在的活动(页面)最后。
我打算在用户浏览本书时编辑每个活动的首选项,以便他们可以在任何地方加载。
这是我认为的代码我应该用来设置偏好:
SharedPreferences setpage = getSharedPreferences("page", Context.MODE_PRIVATE);
SharedPreferences.Editor editor =setpage.edit();
editor.setpage ("page");
但是我立即在" editor.setpage"上得到了红色字母。我做错了什么?
您将如何保存偏好中的最后一项活动?
谢谢!
答案 0 :(得分:1)
setPage(..)
SharedPreferences.Editor
方法
您可以这样设置值:
SharedPreferences prefs = getSharedPreferences("MY PREF", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("pageName","page");
editor.apply();
您想要检索数据之后:
SharedPreferences prefs = getSharedPreferences("MY PREF", MODE_PRIVATE);
String pageName = prefs.getString("pageName", null);
if (pageName == null) {
//"No name defined" is the default value.
}
您可以从here
查看有关SharedPreferences的更多信息答案 1 :(得分:1)
将活动名称另存为字符串
SharedPreferences sharedPref = getSharedPreferences("MyPages", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("page", "PageX");
editor.apply();
然后从SharedPreference获取活动并启动它
SharedPreferences sharedPref = getSharedPreferences("MyPages", Context.MODE_PRIVATE);
String page = sharedPref.getString("page", "PageX");
Intent ActivityPage = new Intent(MainActivity.this, Class.forName(page));
startActivity(ActivityPage);
答案 2 :(得分:0)
SharedPreferences无法实现您想要做的事情,因为它非常基础。但我建议您了解数据库及其与Android的集成。但有时您可能需要SharedPreferences,例如当您需要计算用户打开应用程序的次数时。
让我使用下面的代码告诉SharedPreferences。
第一行创建新的SharedPreference对象,第二行创建编辑器换句话说,您创建一个铅笔以向SharedPreferences写入内容。
在第四行中,您获得之前的count
金额。 getInt()
方法的第一个论点是给我count
,如果计数不存在则返回0(这是第一次打开应用程序时发生)
如果你在第六行查看putInt()
方法哪些争论(在paranthesises之间的事情),第一个争论是count
是一个唯一的密钥,你将在其中存储你的数据(数据类型取决于方法你打电话给你可能也会使用putString()
来表示其他情况)。当你想获得价值时你需要这个钥匙(正如我们在第四行中所做的那样),第二个争论是count
的新值
最后一行做了这个改变。
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = preferences.edit();
int previousCount = preferences.getInt("count", 0);
editor.putInt("count", previousCount + 1);
editor.commit();