【问题标题】:how to save the get the changes in listpreference?如何保存获取列表首选项中的更改?
【发布时间】:2014-06-26 07:23:29
【问题描述】:

我想让用户在我的应用上选择字体大小。我该如何回应他的选择?我怎样才能从他的选择中获得价值? 谢谢 我有这个偏好代码:

<string-array name="aaa_entries">
    <item >0</item>
    <item >1</item>
    <item >2</item>
    <item >3</item>
</string-array>

<string-array name="aaa_values">
    <item >Very small text</item>
    <item >Small text</item>
    <item >Normal text</item>
    <item >Large text</item>
</string-array>

代码:

@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
    if (key.equals("pref_sync")) {
        String selectedFont=sharedPreferences.getString("pref_sync",null);
        if("Very small text".equalsIgnoreCase(selectedFont)) {
            Toast.makeText(getApplicationContext(),"asdasdasdasd",Toast.LENGTH_SHORT).show();
        }
    }
}

【问题讨论】:

    标签: android xml sharedpreferences listpreference


    【解决方案1】:

    ListPreference 中添加一个listener,当用户从ListPreference 中选择一个项目时,onPreferenceChange 将被调用并选择新的值。

    Preference listPreference = getPreferenceManager().findPreference("your_key");
    
    listPreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
                @Override
                public boolean onPreferenceChange(Preference preference, Object newValue) {
                    String userSelectedValue = (String) newValue;
                    Toast.makeText(getActivity(), “user picked a font”, Toast.LENGTH_SHORT).show();
                    return true;
                }
            }); 
    

    【讨论】:

      猜你喜欢
      • 2019-10-05
      • 1970-01-01
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-12
      相关资源
      最近更新 更多