Articles of 偏好

切换首选项 – 同时处理onPreferenceChange和onPreferenceClick

我一直试图得到一个开关首选项在Android中工作,我可以截取和处理不同,在某些情况下,当他们打开/closures,当他们点击整个首选项。 这是我想要完成的:用户进入首选项标签已closures,没有标签存储(即:标签首选项为空)用户打开标签的首选项,并且由于当前没有标签存储它启动标签search活动供用户find标签。 – 工作正常。 如果标签已经存在,他们只改变状态,然后更新正常的值。 – 工作正常 这是我的问题:如果他们点击首选项,但他们已经保存了一个标签,不要改变状态(无论是启用还是禁用),启动标签search活动。 – 这不起作用。 到目前为止我发现的是,在上面的最后一个场景中,我接到onPreferenceChanged的调用,然后调用onPreferenceClicked,随后调用onPreferenceChanged。 这似乎是我的问题。 第一次调用onPreferenceChanged会导致我的SharedPreferences上的侦听器被调用,告诉它现在已经启用了。 如果我没有收到onPreferenceChanged的第一个电话,那么我不会有问题。 这里是我设置听众的相关部分 SwitchPreference tagPref = (SwitchPreference) findPreference(PreferencesConstants.PREFERENCE_TAG_ENABLED); tagPref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { Log.e("BLAH", "onPrefChanged….is it handled by OnClick?" + Boolean.toString(handledByClick)); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext()); boolean enabled = prefs.getBoolean(PreferencesConstants.PREFERENCE_TAG_ENABLED, false); Log.e("BLAH", "value stored in prefs? " + […]

如何隐藏片段中的偏好之间的分隔线

我想隐藏片段中的偏好之间的分隔线。 代码如下: 1.SettingsActivity.java public class SettingsActivity extends PreferenceActivity { super.onCreate(savedInstanceState); SettingsFragment settingsFragement = new SettingsFragment(); FragmentTransaction transaction = getFragmentManager().beginTransaction(); transaction.add(android.R.id.content, settingsFragement, "settings"); transaction.commitAllowingStateLoss(); } 2.SettingsFragment.java public class SettingsFragment extends PreferenceFragment{ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.settings); } } 3.settings.xml <?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory> <Preference android:key="preference_a" android:title="preferenceA"/> <Preference android:key="preference_b" android:title="preferenceB"/> <ListPreference android:key="list_preference_c" android:title="list_preferenceC"/> […]

没有弃用方法的首选项

我试图(正确)实现一个首选项屏幕,但问题是用于从XML文件中读取首选项的所有方法都被弃用(或者我只是不认识它们)。 开发站点( PreferenceActivity )上的官方示例代码使用不推荐使用的方法。 有没有人find一种方法来实现一个XML文件的喜好屏幕,但不使用:addPreferencesFromResource(int)或findPreference(CharSequence)? 或者有方法被标记为弃用而不实现替代呢? 编辑:开发Android版本2.1

如何使PreferenceActivity中的SharedPreferences在Android中被设置为默认值?

我为PreferenceScreen创build了基于xml的PreferenceActivity。 在XML中,您可以将默认值分配给不同的首选项。 但是在屏幕打开和closures之前,这些并不存储在我的SharedPreferences中。 问题是我想立即使用存储在这个屏幕(如服务器地址)的首选项,用户只需要打开它,如果他想改变默认值。 有没有一种方法来存储preferencescreen xml的所有偏好,而不强迫用户打开和closures偏好活动? 我知道,你可以提供一个默认值从SharedPreferences检索偏好,但它是愚蠢的维护默认值都在xml和代码。

首次显示首选项的应用程序运行和相关的问题

我有一个应用程序与2活动,首选项和主要活动,我需要首选项屏幕显示应用程序运行,所以用户可以做一些configuration。 我已经检查了这个主题的答案,他们似乎不是很清楚,但我收集它与检查有共享偏好文件是空的。 有人可以给我一个代码来解决这个问题,我会把代码放在哪个活动上? 另外我还处于发展阶段,所以我已经有了我的偏好设置,我该如何解决这个问题? 提前致谢

在AppWidget提供程序中获取首选项

我似乎无法从我的AppWidgetProvider类阅读首选项。 我的代码工作在一个活动,但它不在一个AppWidgetProvider。 这里是我用来读回布尔值的代码: SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); boolean autoreplyon = settings.getBoolean("autoreplyon", false); 但是,我得到的“方法getSharedPreferences(string,整数)未定义的types小部件”错误(小部件是我的AppWidgetProvider类的名称)。 在此先感谢您的任何build议!

cachingSharedPreferences的值是否有意义?

在我目前的Android应用程序中,我有几个存储在SharedPreferences中的设置和一个处理对它们的访问的对象。 我现在想知道是否有意义的caching值或如果不能访问他们像很多: public final boolean isxxxEnabled() { return preferences.getBoolean("xxx", false); } 代替 public final boolean isxxxEnabled() { // check if value changed // if not, check if value is cached // decide whether to return cached or new // cache value return }

PreferenceActivity中的Resume重新加载首选项

在我的应用程序中, PreferenceActivity未打开时可能会更改一些设置,而我遇到的一个问题是在onCreate调用了addPreferencesFromResource ,所以说,我打开PreferenceActivity ,然后从此处进入另一个屏幕,然后做一些改变设置的东西,然后点击返回键回到PreferenceActivity ,然后某些设置在布局上没有改变。 那么,如何在每次onStart() onResume (或onStart() )时重新加载所有的Preferences而不重复布局呢?

Android:如何在首选项屏幕中删除边距/填充

我在devise偏好屏幕时面临着很奇怪的问题。 尽pipe我没有给出任何保证金,但是留下了一些空间。 正如你可以看到下面的图片: XML: <PreferenceScreen android:title="demo" > <CheckBoxPreference android:defaultValue="false" android:key="prefSync"` android:title="Auto Sync" /> </PreferenceScreen> 我在屏幕上添加checkbox首选项时做错了什么?

SharedPreferences可以在不同的Android应用程序之间共享吗?

当我在getSharedPreferences(String,int)的API描述中进行检查时,第二个属性定义了可访问性模式,并且对于默认操作MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE可以使用0或MODE_PRIVATE来控制权限。 但API说明中有这样一个小logging: 注意:目前这个类(android.content.SharedPreferences)不支持跨多个进程使用。 这将在稍后添加。 而且在Mark L. Murphy的书“开始Android 2”中他提到: (最终,各种应用程序的偏好设置可能是可共享的,但截至撰写本文时为止,这并不受支持) 我很困惑! 这是否意味着getSharedPrefrences的MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE存在,但在最新的API级别还没有被支持? 谢谢! 米泔