如何在我的首选项屏幕中显示某种带有一组单选按钮的对话框。类似的东西;
每个按钮都与一种颜色相关联,例如红色、蓝色、绿色、黑色、黄色等,我对每种颜色都有方法。当按下单选按钮时,我希望调用相关方法。例如我的方法之一是;
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;
}
});
瞧,你就可以正常工作了
这是我的设备的一些屏幕截图
这是您从列表中选择任何颜色时的结果
所有案例(一次一个)
进一步阅读ListPreference 。
希望对您有所帮助!
问候
关于android - 首选项中的单选按钮选项 - android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27431468/