Questions tagged «sharedpreferences»

使用SharedPreferences,您可以在Android应用程序中保存和检索原始数据类型的持久键值对。它可以在单个应用程序内部使用,也可以在多个应用程序之间共享。

14
如何使用Android Studio查看共享的首选项文件?
我正在使用共享首选项来存储我的应用程序的某些值。我想查看手机上实际存储信息的文件。我在Eclipse上找到了许多方法来执行此操作,但是我正在Android Studio上进行调试。我的手机已扎根。我读到,具有root用户访问权限对于读取这些类型的文件很重要。如果没有办法,那么我将查找如何通过程序访问信息,然后将其输出到log cat。不过希望是,我可以直接在手机上查看文件,因为它要简单得多。谢谢。

8
如何收听PreferenceFragment中的首选项更改?
如上所述这里,我继承PreferenceFragment并显示它的活动中。该文档仅在您将PreferenceActivity子类化的情况下说明了如何在此处侦听首选项更改。由于我没有这样做,我该如何收听偏好更改? 我尝试在我的PreferenceFragment中实现OnSharedPreferenceChangeListener,但它似乎不起作用(onSharedPreferenceChanged似乎从未被调用)。 到目前为止,这是我的代码: SettingsActivity.java public class SettingsActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Display the fragment as the main content. getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit(); } } SettingsFragment.java public class SettingsFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener { public static final String KEY_PREF_EXERCISES = "pref_number_of_exercises"; @Override public void onCreate(Bundle …



5
不能放置两个SharedPreferences
遇到错误时,这种类型的sharedPreferences编辑器未定义放置double的方法。给了Eclipse一个快速修复,将强制类型转换添加到编辑器,但是当我这样做时仍然给出错误,为什么我不能放置double。 编码: @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); if (TextUtils.isEmpty(editBl.getText().toString())) { numberOfBl = 0; } else { numberOfBl = Integer.parseInt(editBl.getText().toString(); } if (TextUtils.isEmpty(editSt.getText().toString())) { tonOfSt = 0; } else { tonOfSt = Double.parseDouble(editSt.getText().toString()); } SharedPreferences prefs = getSharedPreferences( "SavedTotals", Context.MODE_PRIVATE); SharedPreferences.Editor editor = prefs.edit(); editor.putInt("savedBl", …

9
片段中的Android SharedPreferences
我正在尝试阅读Fragment中的SharedPreferences。我的代码是我用来获取其他任何Activity的首选项的代码。 SharedPreferences preferences = getSharedPreferences("pref", 0); 我得到错误 Cannot make a static reference to the non-static method getSharedPreferences(String, int) from the type ContextWrapper 我尝试遵循这些链接,但是没有通过静态方法和 静态SharedPreferences访问SharedPreferences的运气。谢谢您的解决方案。

3
更新Android应用程序后,SharedPreferences将会如何处理?
我已将用户设置存储在应用程序的SharedPreferences中。当我通过Google Play商店将应用程序更新到新版本的应用程序时,SharedPreferences会发生什么? 更新后,SharedPrefernces仍会存在还是会被删除? 到目前为止,我还没有在Web或Stackoverflow上找到答案(我可以使用错误的关键字进行搜索吗?)。 您能否指出一些他们描述此过程的链接? 编辑: 同时,我也找到了另一个答案:更新/卸载上的SharedPreferences行为 编辑2: 自从我问这个问题已有一段时间以来,我最近才了解到,从Android 6.0(API 23)开始,还可以使用自动备份功能来保护您的共享首选项,如Google此处所述。只需allowBackup="true"在AndroidManifest.xml文件中添加即可。


3
如何遍历共享首选项的所有键?
SharedPreferences具有方法getAll,但尽管存在某些键,但它不返回任何条目: PreferenceManager.getDefaultSharedPreferences(this).contains("addNewAddress"); 返回true Map<String, ?> keys=PreferenceManager.getDefaultSharedPreferences(this).getAll(); 返回空地图 怎么了?如何获取所有共享首选项的列表?

6
自定义对象的Android ArrayList-保存到SharedPreferences-可序列化吗?
我有一个对象的ArrayList。该对象包含“位图”和“字符串”类型,然后分别包含这两种类型的获取器和设置器。首先,位图可序列化吗? 我将如何对其进行序列化以将其存储在SharedPreferences中?我已经看到很多人都提出了类似的问题,但似乎没有一个很好的答案。如果可能的话,我希望有一些代码示例。 如果位图不可序列化,那么如何存储此ArrayList? 非常感谢。

4
如何在Android中使用getSharedPreferences
我有一个必须执行“登录”活动的应用程序。我有这些组成部分: EditText用户名 EditText密码 按钮登录 按钮取消 我希望我的应用程序在用户登录后记住用户的登录详细信息,直到用户按下“注销”按钮为止。我没有在xml中使用首选项。 如何使getSharedPreferences(字符串名称,整数模式)在我的应用程序中工作?

2
如何检测是否对首选项进行了更改?
我有一个扩展PreferenceActivity并显示我的应用程序首选项屏幕的类。是否可以检查是否对首选项进行了任何更改? 这有帮助... http://developer.android.com/reference/android/content/SharedPreferences.OnSharedPreferenceChangeListener.html 其他相关文章: SharedPreferences.onSharedPreferenceChangeListener未被一致调用 public class PreferenceClass extends PreferenceActivity { OnSharedPreferenceChangeListener listener; public void onCreate(Bundle savedInstanceState) { SharedPreferences prefs = this.getSharedPreferences("settings", 0); listener = new SharedPreferences.OnSharedPreferenceChangeListener() { public void onSharedPreferenceChanged(SharedPreferences prefs, String key) { int flag = 1; } }; prefs.registerOnSharedPreferenceChangeListener(listener); super.onCreate(null); addPreferencesFromResource(R.xml.settings); } }

9
如果在单独的活动中发生更改,则不会触发onSharedPreferenceChanged吗?
我已经onSharedPreferenceChanged在主要活动中实施了。 如果我在主要活动中更改首选项,则会触发我的事件。 如果通过首选项屏幕(PreferenceActivity)更改了首选项,则更改首选项时不会触发我的事件(因为这是一个单独的活动,并且是对sharedPreferences的单独引用?) 是否有人建议我应如何克服这种情况? 谢谢! EDIT1:我尝试在我的首选项活动中添加事件处理程序,但它从未触发。在我的首选项活动的onCreate期间调用了以下方法。当我更改值时,它从不打印消息(msg()是的包装器Log.d)。 private void registerChangeListener () { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); sp.registerOnSharedPreferenceChangeListener(new OnSharedPreferenceChangeListener () { public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { msg (" ***** Shared Preference Update ***** "); Intent i = new Intent(); i.putExtra("KEY", key); i.setAction("com.gtosoft.dash.settingschanged"); sendBroadcast(i); // TODO: fire off the event } …

6
重新安装后从SharedPreferences中检索值,并使用Android自动备份使用allowBackup = true进行检索
重新安装应用程序并设置allowBackup = true时,无法从共享的“首选项”中检索值(在Android 9.0设备上)。 <manifest ... > ... <application android:allowBackup="true" ... > ... </application> </manifest> 据此:https : //developer.android.com/guide/topics/data/autobackup 共享的首选项应该恢复吗? SharedPreferences prefs = getSharedPreferences("TEST", MODE_PRIVATE); String name = prefs.getString("name", "No name defined");//"No name defined" is the default value. int idName = prefs.getInt("idName", 0); //0 is the default value. SharedPreferences.Editor editor = …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.