- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我的首选项屏幕中有三个复选框。我想让用户一次只选择一个复选框。我如何实现这一目标?
提前致谢。
最佳答案
您需要创建一个 onpreferenceChangelistener:
prefChangeListener = new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (preference == pref1 && newValue.toString().equals("true")){
pref2.setChecked(false);
pref3.setChecked(false);
}
if (preference == pref2 && newValue.toString().equals("true")){
pref1.setChecked(false);
pref3.setChecked(false);
}
if (preference == pref3 && newValue.toString().equals("true")){
pref1.setChecked(false);
pref2.setChecked(false);
}
return true;
}
};
然后使用它,
pref1.setOnPreferenceChangeListener(prefChangeListener);
pref2.setOnPreferenceChangeListener(prefChangeListener);
pref3.setOnPreferenceChangeListener(prefChangeListener);
或者,您可以使用 ListPreference,它会弹出一个单选组,您可以将三个选项放在那里。这就是我在我的应用程序中所做的,但如果需要复选框首选项,那当然可以。
这是我的列表首选项(用于选择响铃多长时间):
<ListPreference android:persistent="true"
android:title="Ring Time"
android:summary="Choose how long the phone will ring when activated"
android:key="ringTime"
android:defaultValue="ringNot"
android:entries="@array/ringTime"
android:entryValues="@array/ringSetting" />
这是我的@array/ringTime 和@array/ringSetting 的 XML
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="ringTime">
<item>Don\'t Ring</item>
<item>Ring 30 Seconds</item>
<item>Ring 2 Minutes</item>
<item>Ring 5 Minutes</item>
</string-array>
<string-array name="ringSetting">
<item>ringNot</item>
<item>ring30Sec</item>
<item>ring2Min</item>
<item>ring5Min</item>
</string-array>
</resources>
我知道这是一个 5 个月前的问题,但我认为这可能会对其他人有所帮助。 :)
然后在我的代码中实现 listpreference:
ringTime = pref.getString("ringTime", "ringNot");//ListPreferences are stored as strings
if (ringTime.equals(ring30Sec))
//ring for 30 seconds
else if (ringTime.equals(ring2Min))
//ring for 2 minutes
else if (ringTime.equals(ring5Min))
//ring for 5 minutes
else Toast.makeText(getBaseContext(), "Not Ringing", Toast.LENGTH_LONG).show();
关于android - checkboxpreference android中的多重依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5063100/
我有这个偏好 现在, 在我的 PreferenceActivity 中,显然选中的值没有保留: public class My
我想实现一个由两部分组成的偏好屏幕。如果单击复选框,则第一个类别应锁定,第二个类别应解锁。如果不是,则反转。现在我看到它只有在我去之前的 Activity 然后去新的(sharedPreference
我有 PreferenceScreen 包含 CheckBoxPreference ,它在 list 中引用 PreferencesTheme ,它的标题文本很长,所以它出现在单行中,并且在行尾剪切单
我有一个复选框和一个 ListPreference,我想通过复选框禁用/启用 ListPreference。我读了很多书,发现只有使用 java(而不是 xml)才有可能。这是对的吗?现在,在读取“c
我目前正在使用 Web 服务中的内容动态构建带有复选框的行列表。但是,此 ListView 需要完成 PreferenceActivity 所能完成的大部分工作。 我不知道行数,因为内容是动态的,所以
我有带有一些 PreferenceCheckBox 的 PreferenceScreen。我想更改标题和摘要的 textColor 和 textSize,以及选中和取消选中 CheckBox 的图像。
我的 xml 文件中有以下首选项: 我想制作我自己的自定义复选框,所以正如您在上面看到的,我给了这个首选项“android:widgetLayout”参数,它链接到这个文件: 问题:使用 (wi
我有一个 CheckBoxPreference 并且我希望它被默认选中;但它不工作。 这是我的代码: 在我的 extends Application 类中: @Override public void
我的首选项屏幕中有三个复选框。我想让用户一次只选择一个复选框。我如何实现这一目标? 提前致谢。 最佳答案 您需要创建一个 onpreferenceChangelistener: prefChangeL
我的 CheckBoxPreference 有以下 XML 代码: 但是当我在代码中检索首选项时,值是 false. sharedPreferences = PreferenceManager.ge
我设置了几个 CheckBoxPreferences,我的偏好类扩展了 PreferenceActivity 并实现了 OnSharedPreferenceChangeListener这就是我用来回应
几天来我一直在使用checkBoxPreference, 想通了: 如何使用 checkBoxPreference 显示图标, 如何改变标题和摘要的颜色 现在,我需要添加一个按钮而不是图标。所以这里的
在我的应用程序设置 Activity 中声明了 CheckboxPreference 后,在行 'val mCheckBoxPreference = findPreference("preferenc
我想从 CheckBoxPreference 中获取值,我在 Convert/res/xml/settings.xml 中定义了它,如下所示: 我的问题是如何在我的 Main
我想为 CheckBoxPreference 设置字体。我知道我们可以使用 setTypeface 方法为 CheckBox 设置字体。但是,CheckBoxPreference 类没有字体方法。 谁
我想要一个复选框首选项,如果用户按下实际文本(而不是右边的复选框),它会将用户带到一个新的(子)首选项屏幕。 就像设置 -> 无线 -> 移动网络设置 -> 接入点名称下的控件一样。 最佳答案 两种可
我正在尝试使用复选框控件创建首选项屏幕。 我想在它发生变化时得到这个 bool 值。 在我的应用程序中,我已经完成了如下实现 OnSharedPreferenceChangeListener pu
我需要动态设置/取消设置监听器以响应 Preference CheckBox用户设置更改。 我见过的一种方法是使用 onSharedPreferenceChanged()并检查该复选框的键。 但不知何
我正在尝试使用 fragment 构建我的 PreferenceActivity。我有一个包含两个 CheckBoxPreferences 的 PreferenceFragment: 我的 Fra
您好,我正在优先处理消息设置。 我正在尝试更改 CheckboxPreference 的 android:title 和 android:summary 文本字体大小。 为此我正在尝试下面的代码
我是一名优秀的程序员,十分优秀!