Articles of android preferences

当其他偏好被禁用时,如何在我的android应用程序中启用偏好?

我已经使用PreferenceActivity在我的android应用程序的偏好。 我希望有一个优先select,当其他优先选项“pref 1”未被选中时,“pref 2”被启用,当选中“pref 1”时,“pref 2”被禁用。 即完全相反的android:dependancy属性。 我怎样才能做到这一点?

在android有没有办法在卸载后保存SharedPreferences

我在SharedPreferences保留了一些应用程序元数据。 每当我卸载应用程序并重新安装它, SharedPreferences被删除。 有没有什么办法让它保留下来,这样如果用户卸载并重新安装,他们可以恢复他们的旧数据?

如何在onPreferenceClick被触发时dynamic地填充ListPreference?

我有一个首选活动,其language为ListPreference ,它显示可用的语言列表。 当onCreate被调用时,我可以填充列表,但是当用户点击它时我想填充列表。 this is the java code : public class SettingsActivity extends PreferenceActivity implements OnPreferenceClickListener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); try { addPreferencesFromResource(R.xml.settings); } catch (Exception e) { } } @Override public boolean onPreferenceClick(Preference preference) { if((preference instanceof ListPreference) && (preference.getKey().equals("language"))){ ListPreference lp = (ListPreference)preference; CharSequence[] entries = { "English", "French" […]

从preferences.xml启动Activity,并在onActivityResult中获取结果

这是对这个问题的补充。 我可以启动活动,但我也需要能够得到结果。 我该怎么做? 我尝试覆盖onActivityResult我的PreferencesActivity无济于事。 我是否在preferences.xml中缺less一些额外的属性?

Android:unit testing期间如何重置/清除应用程序首选项?

我想从一个一致的testing环境开始,所以我需要重置/清除我的首选项。 这是迄今为止我所做的testing的SetUp。 这不是报告任何错误,我的testing通过,但偏好没有被清除。 我正在testing“MainMenu”活动,但是我暂时切换到OptionScreen活动(它扩展了Android的PreferenceActivity类)。我确实看到testing在运行期间正确地打开了OptionScreen。 public class MyTest extends ActivityInstrumentationTestCase2<MainMenu> { … @Override protected void setUp() throws Exception { super.setUp(); Instrumentation instrumentation = getInstrumentation(); Instrumentation.ActivityMonitor monitor = instrumentation.addMonitor(OptionScreen.class.getName(), null, false); StartNewActivity(); // See next paragraph for what this does, probably mostly irrelevant. activity = getActivity(); SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(activity); settings.edit().clear(); settings.edit().commit(); // I am pretty sure […]

工具栏隐藏在嵌套的PreferenceScreen中

我从support-v7库中的ActionBarActivity使用PreferenceFragment 。 在活动我有Toolbar 。 一切顺利,直到我打开一个嵌套的PreferenceScreen 。 在打开的屏幕中, Toolbar是隐藏的。 也许有人知道这个问题的解决方法? 首选项xml文件: <?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > <PreferenceCategory android:title="Main category" > <EditTextPreference android:defaultValue="defaultValue" android:key="key_global_setting" android:title="Global title" /> </PreferenceCategory> <PreferenceCategory android:title="Nested screens" > <PreferenceScreen android:persistent="false" android:title="@string/settings_facility_title" > <CheckBoxPreference android:defaultValue="false" android:key="nested_screen_1_1" android:title="Nested screen 1.1 check box" /> <CheckBoxPreference android:defaultValue="true" android:key="nested_screen_1_2" android:title="Nested screen 1.2 check box" /> </PreferenceScreen> <PreferenceScreen […]

设置多个SharedPreferences实例/文件的默认值

假设我有一个应用程序将喜好保存到两个文件, preferences1.xml和preferences2.xml 。 然后,我可以使用以下代码检索对相应对象的引用: SharedPreferences sharedPrefs1 = getSharedPreferences("preferences1", MODE_PRIVATE); SharedPreferences sharedPrefs2 = getSharedPreferences("preferences2", MODE_PRIVATE); 通过这种方式,我可以操纵两者的偏好,并在两者上注册侦听器。 我对setDefaultValues这两个文件的初始化有一些怀疑: 问题1 – PreferenceFragment上下文 :我已经创build了PreferenceActivity与两个PreferenceFragments,并在每个的onCreate方法执行下面的代码(用1和2代替X的片段1和2): PreferenceManager pm = getPreferenceManager(); pm.setSharedPreferencesName("preferencesX"); PreferenceManager.setDefaultValues(getActivity(),R.xml.preference_fragmentX, false); 我已经看到,这两个片段正确设置其默认值启动时的偏好..但是,鉴于我可以看到应用程序的shared_prefs目录中只有一个_has_set_default_values.xml文件,它是如何理解何时的属性preferences1.xml和preferences2.xml已经设置好了吗? 在第一个打开的PreferenceFragment中调用setDefaultValues后立即创build该文件,但即使如此,如果打开第二个PreferenceFragment,它也会正确初始化默认值。 它是如何理解的,它尚未初始化preferences2.xml和_has_set_default_values.xml的目的是什么,因为它不包含有关哪些prefereces文件已被初始化的信息? 问题2 – 标准活动上下文 :当我启动我的应用程序, PreferenceActivity不是第一个活动启动,用户可能永远不会打开它,所以我想初始化这两个首选项文件的默认值也在主要的活动 ,我怎样才能做到这一点? 对于默认的共享首选项,很简单: PreferenceManager.setDefaultValues(this, R.xml.default_preferences, false); 对于两个首选文件,我应该怎么做? 我不能做像下面这样的事情,因为我不能像PreferenceFragment类一样检索PreferenceManager的实例: PreferenceManager pm = getPreferenceManager(); // NOT AVAILABLE AND NOT WANTED pm.setSharedPreferencesName("preferences1"); PreferenceManager.setDefaultValues(getActivity(),R.xml.preference_fragment1, false); […]

Android偏好片段文本颜色

我想改变android偏好片段中的文字颜色。 我目前正在使用自定义的主题来改变checkbox的图像,背景,onClick突出显示,除了文字颜色,它的一切都很好。 我不想使用默认的主题,我想有我自己的主题,所以看起来我怎么样,但只是改变文字的颜色,有人可以请帮助。 styles.xml <?xml version="1.0" encoding="utf-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="selectedTextStyle"> <item name="android:textSize">18sp</item> </style> <style name="buttonTextStyle"> <item name="android:textSize">20sp</item> </style> <style name="PreferencesTheme" > <item name="android:windowBackground">@drawable/lists_background</item> <item name="android:listViewStyle">@style/listViewPrefs</item> <item name="android:checkboxStyle">@style/MyCheckbox</item> </style> <style name="MyTextAppearance" parent="@android:style/TextAppearance"> <item name="android:textColor">@color/black</item> </style> <style name="listViewPrefs" parent="@android:Widget.ListView"> <item name="android:listSelector">@layout/list_selector_master</item> <item name="android:textAppearance">@style/MyTextAppearance</item> </style> <style name="MyCheckbox" parent="android:Widget.CompoundButton.CheckBox"> <item name="android:button">@drawable/btn_check</item> </style> </resources> performance: <activity android:name="com.package.SettingsActivity" android:theme="@style/PreferencesTheme" android:configChanges="keyboard|orientation" […]

如何更改Android中偏好类别的文本颜色?

textColor属性不起作用。 这是我的XML: <PreferenceCategory android:title="Title" android:textColor="#00FF00"> 有任何想法吗?

使用AppCompat v21将色调应用于PreferenceActivity小部件

我在PreferenceActivity中使用CheckboxPreference,在v21支持库中使用AppCompat主题。 就像你已经知道的那样,使用这个最新的图库小部件,比如checkbox,editTexts,单选button等都是用主题中定义的第二种颜色着色的。 在首选项屏幕中,文本的颜色是由我的主题指定的,但checkbox和edittext不是。 看来,当CheckboxPreference实例创build小部件时,它不会将我的主题应用到它。 正常布局中的单选button,有色: 截图1 http://sofzh.miximages.com/android/2qv9stj.png CheckboxPreference中的checkbox没有着色: 截图2 http://sofzh.miximages.com/android/91bcly.png 我正在使用作为父主题Theme.AppCompat.Light.NoActionBar 。 这发生在一个小部件的Preference的每个子类,就像EditTextPreference说的那样,其中EditText有一个黑底线,而不是有色线。 如何将偏色应用于偏好子类显示的小部件? 更新 :设色不适用,因为PreferenceActivity扩展框架活动。 在工作案例中,我使用支持库中的ActionBarActivity。 现在的问题是:怎么回事?