偏好中的单选按钮选项 - android

时间:2014-12-11 20:05:53

标签: android background radio-button preferences

如何在我的首选项屏幕中设置一组包含单选按钮的对话框。喜欢的东西;

enter image description here

每个按钮都会与一种颜色相关联,例如红色,蓝色,绿色,黑色,黄色等,我有每种颜色的方法。按下单选按钮时,我希望调用相关方法。例如,我的方法之一是;

public void red(){
.....
.....
}

当按下标有红色的单选按钮时,我想调用red()方法,然后将主活动的背景颜色更改为红色。

1 个答案:

答案 0 :(得分:1)

我不知道你是否解决了这个问题。我会在11个月之后回答它,以防有人需要这个 首先在PreferenceScreen xml文件中添加此

           <ListPreference     
                  android:title="Choose a Background"
                  android:summary="Select your favorite color"
                  android:key="chosenColor"
                  android:defaultValue="Black"
                  android:entries="@array/colorArray"
                  android:entryValues="@array/colorArray" />

然后在你的strings.xml为你的条目和值创建一个字符串数组:

         <string-array name="colorArray">
               <item>Black</item>
               <item>Red</item>
               <item>Blue</item>
         </string-array>

注意:您可以对条目和值使用相同的数组,或者您可以使用不同的数组,一个数组用于条目,另一个数组用于值,为简单起见,我使用了一个数组。

然后在您的偏好活动类中执行以下操作

添加PreferenceScreen xml文件后

    addPreferencesFromResource(R.xml.pref_actions);

使用OnPreferenceChangeListener来处理列表值的更改,如下所示:

    findPreference("chosenColor").setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {
        String color = newValue.toString();
        switch (color){
            case "Black":
                // your method corresponding to Black goes here
                Toast.makeText(getActivity(),"Chosen color is: " + newValue.toString(), Toast.LENGTH_LONG).show();
                break;
            case "Red":
                // your method corresponding to Red goes here
                Toast.makeText(getActivity(),"Chosen color is: " + newValue.toString(), Toast.LENGTH_LONG).show();
                break;
            case "Blue":
                // your method corresponding to Blue goes here
                Toast.makeText(getActivity(),"Chosen color is: " + newValue.toString(), Toast.LENGTH_LONG).show();
                break;
        }
        return false;
    }
});

瞧,这就是你的工作

以下是我设备的一些屏幕截图

The list

,这是从列表中选择任何颜色的结果

enter image description here

所有案例(一次一个)

Selected colors handling

进一步阅读ListPreference

我希望这有帮助!

此致