- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个偏好
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<CheckBoxPreference
android:defaultValue="true"
android:key="sound"
android:summary="Sound ON/OFF"
android:title="Sound" >
</CheckBoxPreference>
<PreferenceScreen
android:key="videos"
android:persistent="false"
android:summary="Click to select videos"
android:title="Videos" >
<CheckBoxPreference
android:defaultValue="true"
android:icon="@drawable/ic_launcher_crimson"
android:key="crimson"
android:title="Cimson Cartoon" />
<CheckBoxPreference
android:defaultValue="false"
android:icon="@drawable/ic_launcher_darkgreen"
android:key="darkgreen"
android:title="Dark Green Cartoon" />
<CheckBoxPreference
android:defaultValue="false"
android:icon="@drawable/ic_launcher_openfieldrifle"
android:key="openfieldrifle"
android:title="Open Field with Bullet Bill, Assault Rifle" />
<CheckBoxPreference
android:defaultValue="false"
android:icon="@drawable/ic_launcher_openfieldshotgun"
android:key="openfiledshotgun"
android:title="Open Field Cartoon Shotgun" />
<CheckBoxPreference
android:defaultValue="false"
android:icon="@drawable/ic_launcher_submachine"
android:key="submachine"
android:title="Submachine Dark Mist" />
<CheckBoxPreference
android:defaultValue="false"
android:icon="@drawable/ic_launcher_violet"
android:key="violet"
android:title="Violet Cartoon" />
</PreferenceScreen>
</PreferenceScreen>
现在,
在我的 PreferenceActivity 中,显然选中的值没有保留:
public class MyPreferencesActivity extends PreferenceActivity {
Boolean crimson;
Boolean darkgreen;
Boolean openfieldrifle;
Boolean openfiledshotgun;
Boolean submachine;
Boolean violet;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getPreferenceManager().setSharedPreferencesName("prefs");
addPreferencesFromResource(R.xml.prefs);
PreferenceManager.setDefaultValues(this, R.xml.prefs, false);
Preference crimsonpreference = getPreferenceScreen().findPreference(
"crimson");
Preference darkgreenpreference = getPreferenceScreen().findPreference(
"darkgreen");
Preference openfieldriflepreference = getPreferenceScreen()
.findPreference("openfieldrifle");
Preference openfiledshotgunpreference = getPreferenceScreen()
.findPreference("openfiledshotgun");
Preference submachinepreference = getPreferenceScreen().findPreference(
"submachine");
Preference violetpreference = getPreferenceScreen().findPreference(
"violet");
SharedPreferences sharedPref = PreferenceManager
.getDefaultSharedPreferences(MyPreferencesActivity.this);
crimson = sharedPref.getBoolean("crimson", false);
darkgreen = sharedPref.getBoolean("darkgreen", false);
openfieldrifle = sharedPref.getBoolean("openfieldrifle", false);
openfiledshotgun = sharedPref.getBoolean("openfiledshotgun", false);
submachine = sharedPref.getBoolean("submachine", false);
violet = sharedPref.getBoolean("violet", false);
crimsonpreference.setOnPreferenceChangeListener(listener1);
}
Preference.OnPreferenceChangeListener listener1 = new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
SharedPreferences sharedPref = PreferenceManager
.getDefaultSharedPreferences(MyPreferencesActivity.this);
crimson = sharedPref.getBoolean("crimson", false);
darkgreen = sharedPref.getBoolean("darkgreen", false);
openfieldrifle = sharedPref.getBoolean("openfieldrifle", false);
openfiledshotgun = sharedPref.getBoolean("openfiledshotgun", false);
submachine = sharedPref.getBoolean("submachine", false);
violet = sharedPref.getBoolean("violet", false);
Log.e("crimson", Boolean.toString((Boolean) newValue));
Log.e("darkgreen", Boolean.toString(darkgreen));
Log.e("openfieldrifle", Boolean.toString(openfieldrifle));
Log.e("openfiledshotgun", Boolean.toString(openfiledshotgun));
Log.e("submachine", Boolean.toString(submachine));
Log.e("violet", Boolean.toString(violet));
if ((Boolean) newValue || darkgreen || openfieldrifle || openfiledshotgun
|| submachine || violet) {
return true;
}
// If now create a message to the user
else {
Toast.makeText(MyPreferencesActivity.this,
"Please select at least one video ", Toast.LENGTH_SHORT)
.show();
return false;
}
}
};
}
例如:
但这就是我的日志显示的!!!
最佳答案
您的问题来自这一行:
getPreferenceManager().setSharedPreferencesName("prefs");
如果你删除它,它应该可以工作。如果你想保留它,那么你应该尝试替换这一行:
SharedPreferences sharedPref = PreferenceManager
.getDefaultSharedPreferences(MyPreferencesActivity.this);
通过这个:
SharedPreferences sharedPref = getSharedPreferences("prefs", MODE_PRIVATE);
希望对您有所帮助。
关于android - CheckBoxPreference 不保留选中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21533408/
我有这个偏好 现在, 在我的 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 文本字体大小。 为此我正在尝试下面的代码
我是一名优秀的程序员,十分优秀!