【问题标题】:On Click/ On change item from a key of a listpreference从列表首选项的键单击/更改项目
【发布时间】:2016-03-13 04:28:41
【问题描述】:

我正在尝试对列表首选项数组中更改的首选项/单击项目执行操作。 这是我正在做的事情:

<PreferenceCategory android:title="@string/customization_settings" >

<ListPreference android:key="selected_theme"
    android:entries="@array/themes"
    android:title="@string/themes_title"
    android:summary="@string/themes_summary"
    android:entryValues="@array/themes_values" />
</PreferenceCategory>






 <string-array name="themes">
    <item name="dark">Verde</item>
    <item name="green">Viola</item>
</string-array>
<string-array name="themes_values">
    <item name="dark" translatable="false">0</item>
    <item name="green" translatable="false">1</item>
</string-array>

这是我的列表偏好。
如果用户选择数组条目中的一项,我需要设置一个操作。
我不知道该怎么做。
我搜索了很多,但还没有找到给我解决方案的答案。

请帮帮我。

【问题讨论】:

    标签: java android settings listpreference


    【解决方案1】:

    listpreference 的 onClick 事件可以使用下面的代码

    ListPreference selected_theme = (ListPreference) getPreferenceManager().findPreference("selected_theme");
    selected_theme.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
            @Override
            public boolean onPreferenceChange(Preference preference, Object newValue) {
                 return false;
            }
    });
    

    【讨论】:

    • 如果item=0怎么办;返回,elseif = 1;返回?
    • 意思,我没听懂?
    • 如何指定项目值是否为“0”执行此操作,如果为“1”执行此操作...?
    • 这里 newValue 会给你选择的值。因此,您可以检查选择了哪个项目。
    • 我还不知道,如果我必须检查偏好是否发生了变化,我应该像 if(newValue == preference){} 这样写一些东西吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-01
    • 2017-07-21
    • 2023-03-31
    • 2012-03-02
    • 1970-01-01
    相关资源
    最近更新 更多