我试图在共享首选项中保存一个名称列表,并希望使用SharedPreferencesputStringSet这样我就不需要多个键值对.我知道常规HashSet不能保证迭代顺序,所以我使用LinkedHashSet将迭代顺序维护为插入顺序并将其保存到共享首选项。当检索相同的字符串集时,我还使用了LinkedHashSet,但顺序与最初插入时的顺序不同。我通过将名称存储在逗号分隔的字符串中然后对其进行解析来解决问题,所以这不是我的问题。我想知道SharedPreferences对一组字符串做了什么,以便它不保持正确的顺序(至少不是我想要的顺序)? 最佳答案
我的应用程序在多个平台上使用,因此它将首选项保存到一个文件中(而不是标准的AndroidSharedPreferences)。重用PreferenceActivity将首选项保存到文件是否容易,或者是否需要创建一个全新的Activity来完成这项工作?如果是后者,是否有我可以使用的布局使Activity看起来像正常的首选项屏幕?PreferenceActivity使用com.android.internal.R.layout.preference_list_content但这似乎不可用于应用程序重用。 最佳答案 Isthereany
所以可能是另一个新问题:)我有一个Activity、一个AppWidgetProvider和一个PreferenceActivity。在PreferenceActivity中,我有一个ListPreference,我用它来定义小部件的文本大小。sharedPreferences在主要Activity启动时加载没有问题,但是一旦PreferenceActivity运行,我就无法再检索sharedPreference主要Activity中的正确值。我尝试直接在PreferenceActivity中检索sharedPreference值,同样的事情发生了:出于某种原因,当我尝试从shared
我在AndroidSharedPreferences中有一个项目的值,我想获取它的键。我无法弄清楚。有什么想法吗? 最佳答案 使用SharedPreferencesgetAll()获取所有键值对的映射并迭代其entrySet()寻找值-您想要的key对。 关于Android:获取具有其值(value)的sharedpreferences的关键,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/quest
目前我想在我的Android应用程序中将两种不同的数据类型存储为SharedPreference。是否可以将它们存储为相同的键值?例如:intid=123;myBoolean=false;myString="hello";SharedPreferences.Editoredit=this.getSharedPreferences("MyPrefs",MODE_PRIVATE).edit();edit.putString(String.valueOf(id),myString);edit.putBoolean(String.valueOf(id),myBoolean);因为目前,当我尝试
我的目标是在创建上下文之前覆盖应用程序语言,我将使用该上下文调用其他Activity。可以通过在“onCreate”上使用“recreate()”方法来实现,但我不想重新创建Activity来实现该目标。例如@OverrideprotectedvoidattachBaseContext(ContextnewBase){//nullexceptionhereSharedPreferencessharedPreferences=PreferenceManager.getDefaultSharedPreferences(this);StringlangKey=getString(R.stri
我需要commit()而不是apply()我对SharedPreferences.Editor的更改:SharedPreferencessharedPrefs=getSharedPreferences("MY_SHARED_PREFS_FILE_NAME",Context.MODE_PRIVATE);SharedPreferences.EditorsharedPrefsEditor=sharedPrefs.edit();sharedPrefsEditor.putBoolean("MY_BOOLEAN",true);sharedPrefsEditor.commit();//但是Lint给
我有一个自定义POJO对象的ArrayList,我想将其保存到SharedPreferences,这样它们就不会被垃圾收集,用户应用程序关闭后仍然可以访问它们。我尝试过使用GSON,但我认为缺少一些我看不到的东西。String我的Object是转换为已正确保存,但未存储任何内容。我正在使用此Click事件来存储:cartBut.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){Toast.makeText(getBaseContext(),"Clicked",Toast.LENG
在我的Android应用程序中,我有大约100个位置(最多200个)。我想让用户将每个地方标记为已访问并存储此选择。因此用户可以标记/取消标记他已经访问过一些地方/城市。如果我将值存储为SharedPreference是个好主意吗?我的代码:SharedPreferencessharedPref=getActivity().getPreferences(Context.MODE_PRIVATE);SharedPreferences.Editoreditor=sharedPref.edit();editor.putString("London","1");editor.commit();
我在我的应用程序中使用“SharedPreferences”来保留从多个编辑文本框保存/检索字符串值的能力,这工作得很好。我在我的Activity中也有一个Spinner,带有一个字符串数组,因为它的可用值。但我不清楚如何将微调器选择写入SharedPreferences,然后稍后阅读SharedPreferences以退休并设置它的值(value)。这是我对编辑文本的配置:-激活将值保存到SharedPreferences的按钮-publicvoidbuttonSaveSendClick(Viewview){SharedPreferences.Editoreditor=getPref