8

如何保存我的应用程序的设置?例如,现在,我有一个切换按钮来打开/关闭。但是,如果我重新启动手机,切换按钮会重新打开。如果我完全关闭应用程序,它不会保存设置。我可以将设置作为 cookie 保存到手机吗?

4

6 回答 6

15

使用共享首选项。像这样:

把它放在你班级的顶部:public static final String myPref = "preferenceName";

创建这些方法以供使用,或者随时使用方法内部的内容:

public String getPreferenceValue()
{
   SharedPreferences sp = getSharedPreferences(myPref,0);
   String str = sp.getString("myStore","TheDefaultValueIfNoValueFoundOfThisKey");
   return str;
}

public void writeToPreference(String thePreference)
{
   SharedPreferences.Editor editor = getSharedPreferences(myPref,0).edit();
   editor.putString("myStore", thePreference);
   editor.commit();
}

你可以这样称呼他们:

writeToPreference("on"); // stores that the preference is "on"
writeToPreference("off"); // stores that the preference is "off"

if (getPreferenceValue().equals("on"))
{
   // turn the toggle button on
}
else if (getPreferenceValue().equals("off"))
{
   // turn the toggle button off
}
else if (getPreferenceValue().equals("TheDefaultValueIfNoValueFoundOfThisKey"))
{
   // a preference has not been created
}

注意:您可以使用 , 等来执行此boolean操作integer

您所要做的就是将String存储和读取更改为boolean,或您想要的任何类型。

这是一个粘贴的链接,上面的代码修改为存储 a : httpboolean : //pastie.org/8400737

于 2013-10-14T05:24:05.893 回答
2

您需要使用SharedPreferences在本地保存应用程序的设置。有关更多详细信息,请参阅此链接:http: //developer.android.com/reference/android/content/SharedPreferences.html

于 2013-10-14T05:03:23.600 回答
1

用作SharedPreferences

保存:

 SharedPreferences settings;
 SharedPreferences.Editor editor;
 public static final String PREFS_NAME = "app_pref";
 public static final String KEY_p_id = "KEY_test";

    settings = getSharedPreferences(PREFS_NAME, 0);
    editor = settings.edit();
    editor.putString(Login_screen.KEY_test, values.get(0));
    editor.commit();

去除:

    editor.remove("KEY_test").commit();
于 2013-10-14T05:22:06.353 回答
0

您应该查看 SharedPreferences。这是 Android 保持简单值的方式。或者您可以创建一个完整的数据库。

于 2013-10-14T05:02:31.063 回答
0

使用 SharedPreferences 来保存一小部分应用数据。检查开发人员的网站

另请查看本教程以获取分步指南。

于 2013-10-14T05:03:35.980 回答
-3

您可以将 SQlite 等本地数据库用于您的应用程序。

于 2013-10-14T05:02:26.313 回答