标签: android-preferences

PreferenceScreen中的TimePicker

我想创建一个名为的首选项字段Interval,我希望能够弹出一个TimePicker并设置一个mm:ss具有最小值的格式化值00:30并且步骤30秒.

是否有可能使用TimePickerPreferenceScreen

android android-preferences

75
推荐指数
5
解决办法
4万
查看次数

如何在android中使用getSharedPreferences

我有一个应用程序,我必须在其中实现"登录"活动.我有这些组件:

  1. EditText用户名
  2. EditText密码
  3. 按钮登录
  4. 按钮取消

我希望我的应用程序在用户登录后记住用户的登录详细信息,直到用户按下"注销"按钮.我没有在我的xml中使用首选项.

如何在我的应用程序中使用getSharedPreferences(String name,int mode)?

android android-preferences sharedpreferences

73
推荐指数
2
解决办法
14万
查看次数

如何检测首选项是否有变化?

我有一个扩展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);
    }
}
Run Code Online (Sandbox Code Playgroud)

android preferenceactivity android-preferences sharedpreferences

72
推荐指数
2
解决办法
8万
查看次数

如何在Android中以编程方式获取SharedPreferences的所有键?

如何获取所有密钥SharedPreferences,而不仅仅是密钥的优先级值?

prefA = getSharedPreferences("MyAttack", MODE_PRIVATE);
prefB= getSharedPreferences("MySkill", MODE_PRIVATE);
Run Code Online (Sandbox Code Playgroud)

android android-preferences

64
推荐指数
6
解决办法
5万
查看次数

尝试使用SharedPreferences存储字符串集时出现错误行为

我正在尝试使用SharedPreferencesAPI存储一组字符串.

Set<String> s = sharedPrefs.getStringSet("key", new HashSet<String>());
s.add(new_element);

SharedPreferences.Editor editor = sharedPrefs.edit();
editor.putStringSet(s);
edit.commit()
Run Code Online (Sandbox Code Playgroud)

我第一次执行上面的代码时,s设置为默认值(刚刚创建的结束为空HashSet)并且存储没有问题.

第二次和下次我执行此代码时,s返回一个对象,并添加第一个元素.我可以添加元素,并且在程序执行期间,它显然存储在SharedPreferences,但是当程序被终止时,SharedPreferences从其持久存储中再次读取并且新值被丢失.

第二个以及之后的元素如何存储以便它们不会丢失?

android android-preferences

62
推荐指数
4
解决办法
1万
查看次数

单页PreferenceActivity没有标题/片段?

我正在努力完成一些我觉得很容易的事情,但是我对如何使用PreferenceActivity类和xml preference-header标签来实现它感到困惑.

当用户点击应用设置图标时,我希望它们会显示一个小的复选框和列表列表.我只有一个偏好片段.到目前为止,我可以设置PreferenceActivity xml文件(preferences.xml和首选项片段xmls)来显示首选项片段的单个标头.当用户选择该标题时,首选项屏幕正是我想要的,但是,我无法找到跳过显示第一个标题屏幕的方法.

必须点击设置/首选项图标,显示单个标题然后点击以获得实际设置/首选项似乎是浪费.

我理解如果你想对你的偏好进行分类,这会非常有用,但对于简单的事情,这会增加开销并且看起来相当笨重.

我希望我很清楚.总之,这是我的问题:

使用PreferenceActivity类和preference-header标签的新首选方法是简单地显示没有标题的单个选项屏幕?

在环顾四周之后,看起来我正试图以旧的方法直接进行.我试图在不使用任何已弃用的函数的情况下执行此操作.

在此先感谢,B.

android android-preferences android-fragments

61
推荐指数
2
解决办法
1万
查看次数

在哪里存储Android偏好键?

当我创建首选项活动时,我在xml文件中定义所有首选项.每个首选项都有一个在此xml中定义的键.但当我访问首选项时,我写道:

SharedPreferences appPreferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean foo_value = appPreferences.getBoolean("foo_key_defined_in_xml", false);
Run Code Online (Sandbox Code Playgroud)

有没有办法避免以硬编码的方式引用"foo_key_defined_in_xml"?也许有可能以R风格的方式引用它(不是指字符串)?

java android android-preferences

56
推荐指数
3
解决办法
1万
查看次数

在主Activity中初始化XML中的首选项

我的问题是,当我启动应用程序并且用户没有打开我的PreferenceActivity时候,当我检索它们时,不会获得我的preference.xml文件中定义的任何默认值.

preference.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    android:key="applicationPreference" android:title="@string/config"
    >
    <ListPreference
            android:key="pref1"
            android:defaultValue="default"
            android:title="Title"
            android:summary="Summary"
            android:entries="@array/entry_names"
            android:entryValues="@array/entry_values"
            android:dialogTitle="@string/dialog_title"
    />                  
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

我的主要活动(onCreate方法)的片段:

    SharedPreferences appPreferences = PreferenceManager.getDefaultSharedPreferences(this);        
    String pref1 = appPreferences.getString("pref1", null);
Run Code Online (Sandbox Code Playgroud)

结果我得到了一个null值.

xml android android-preferences

50
推荐指数
3
解决办法
4万
查看次数

如何设置ListPreference的默认值

我需要在Activity启动时为ListPreference设置defult值.我已尝试过,ListPreference.setDefaultvalue("value");但它会将列表的第一个条目作为默认值.我需要它,因为我必须检查一个条件并设置为默认值满足该条件的值,所以我认为它不能从xml文件中完成(带android:defaultValue)

例如,假设我在arrays.xml中有这个值数组:

<string-array name="opts">
    <item>red</item>
    <item>green</item>
    <item>blue</item>
</string-array>

<string-array name="opts_values">
    <item>1</item>
    <item>2</item>
    <item>3</item>
</string-array>
Run Code Online (Sandbox Code Playgroud)

在PreferenceScreen xml中:

<ListPreference
    android:title="Colour select"
    android:summary="Select your favourite"
    android:key="colour"
    android:entries="@array/opts"
    android:entryValues="@array/opts_values" />
Run Code Online (Sandbox Code Playgroud)

在活动中,我想做这样的事情:

String mycolour;
if (something) {
    mycolour="1";
} else {
    mycolour="2";
}
ListPreference colour = (ListPreference) findPreference ("colour");
colour.setDefaultValue(mycolour);
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为它使第一选择成为默认选择.你能解释一下如何制作另一个默认的吗?谢谢.

java android preference android-preferences listpreference

50
推荐指数
4
解决办法
5万
查看次数

Android:创建自定义首选项

是否可以在PreferenceScreen?中创建个人偏好?

我想像这样编码颜色设置:

颜色偏好

我知道选择颜色很容易实现ListPreference,但是那种"复选框"会很棒.

android preferenceactivity android-preferences android-layout

47
推荐指数
4
解决办法
6万
查看次数