android - 首选项中的单选按钮选项 - android

标签 android background radio-button preferences

如何在我的首选项屏幕中显示某种带有一组单选按钮的对话框。类似的东西;

enter image description here

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

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

当按下标记为红色的单选按钮时,我希望调用 red() 方法,该方法会将主 Activity 的背景颜色更改为红色。

最佳答案

不知道你有没有解决这个问题。我会在 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>

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

然后在您偏好的 Activity 类别中执行以下操作

添加 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

希望对您有所帮助!

问候

关于android - 首选项中的单选按钮选项 - android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27431468/

相关文章:

javascript - Error().stack 在 Cordova iOS 中未定义,但适用于 Android?

Android Studio 2.1.2 渲染问题。 VectorDrawable_Delegate.nDraw

css - 使用 CSS 制作复杂的背景纹理

c# - 单选按钮和显示

php - Jquery Onclick 似乎对我不起作用

java - 检查字符串是否为数字

android - 需要解释 : getText() throws error on getActitvity()ut not on view

javascript - 在 AngularJS 中使用单选按钮控制输入字段

css - 不同页面上的相同元素显示不同的 CSS

java - 单击时更改按钮颜色