加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 代码中的SwitchPreference和CheckBoxPreference

发布时间:2020-12-14 05:12:07 所属栏目:Java 来源:网络整理
导读:我现在正在为我的应用创建首选项页面 在API-14之后,可以使用switchpreference.我想用它来取代API14设备上的checkboxpreference 使用res / xml和res / xml-14很容易获得正确的xml资源 然而,在编码部分中,根据API切换偏好并不是那么方便. public class Setting
我现在正在为我的应用创建首选项页面

在API-14之后,可以使用switchpreference.我想用它来取代API14设备上的checkboxpreference

使用res / xml和res / xml-14很容易获得正确的xml资源

然而,在编码部分中,根据API切换偏好并不是那么方便.

public class SettingActivity extends PreferenceActivity {
    private CheckBoxPreference enable;
    private SwitchPreference enablev14;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        addPreferencesFromResource(R.xml.setting);
        if (Build.VERSION.SDK_INT < 14)
            enable = (CheckBoxPreference) findPreference(key_enable);
        else
            enablev14 = (SwitchPreference) findPreference(key_enable);
    }
    ...
}

现在我的方法是使用if子句检查Build.VERSION并获取相应的对象来处理它.
但是管理代码非常不方便.
有没有人有更聪明的方法呢?

解决方法

也许你可以为你的SwitchPreference和CheckBoxPreference xml设置一个android:key属性,就像这样:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <CheckBoxPreference
        android:key="pref_sync"
        android:title="@string/pref_sync"
        android:defaultValue="true" />
</PreferenceScreen>

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <SwitchPreference
        android:key="pref_sync"
        android:title="@string/pref_sync"
        android:defaultValue="true" />
</PreferenceScreen>

然后你可以检查这个键是否在你的代码中返回true或false,如下所示:

public class SettingActivity extends PreferenceActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    addPreferencesFromResource(R.xml.setting);
    PreferenceManager preferenceManager = getPreferenceManager();
    if (preferenceManager.getSharedPreferences().getBoolean("pref_sync",true)){
        // Your switch is on
    } else {
        // Your switch is off
    }
    ...
}

希望这对你有用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读