java - 添加对设置屏幕 android 的支持

标签 java android

我在我的 Android 应用程序中使用多个 CheckBoxPreference 来添加设置菜单。但是有没有一种方法可以说当时必须检查一个且唯一一个 CheckBoxPreference ?

最佳答案

这是一种方法,但它肯定可以改进!

public class Settings extends PreferenceActivity{

    CheckBoxPreference cb1;
    CheckBoxPreference cb2;
    CheckBoxPreference cb3;

    @Override
    public void onCreate(Bundle b) {
        super.onCreate(b);
        addPreferencesFromResource(R.xml.preferences);

        cb1 = (CheckBoxPreference) findPreference("CheckBox1");
        cb2 = (CheckBoxPreference) findPreference("CheckBox2");
        cb3 = (CheckBoxPreference) findPreference("CheckBox3");
        cb1.setOnPreferenceChangeListener(new Listener());
        cb2.setOnPreferenceChangeListener(new Listener());
        cb3.setOnPreferenceChangeListener(new Listener());

    }

    private class Listener implements OnPreferenceChangeListener {

        @Override
        public boolean onPreferenceChange(Preference preference, Object newValue) {
            if((Boolean) newValue) 
                removeOthers(preference.getKey());
            return true;
        }
    }

    private void removeOthers(String key) {
        if(key.equals("CheckBox1")) {
            cb2.setChecked(false);
            cb3.setChecked(false);
        }
        else if(key.equals("CheckBox2")) {
            cb1.setChecked(false);
            cb3.setChecked(false);
        }
        else if(key.equals("CheckBox3")) {
            cb1.setChecked(false);
            cb2.setChecked(false);
        }
    }
}

关于java - 添加对设置屏幕 android 的支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7211278/

相关文章:

android - 我应该如何将元素添加到自定义相机 android 应用程序?

java - 将MouseListener添加到程序中

java - 如何使用 Object 参数对 Arraylist 中的对象进行排序

java - 将二维数组中每行的 null 元素移动到该行的末尾

android - 使用 Universal Image Loader 显示谷歌静态 map 时出现 FileNotFoundException

android - 推特提要 ListView 问题

android - 更改声音文件的音调并保存到mp3文件

java - 如何修复 javaScriptEnabled ?它总是返回 null

java - DAO 返回 NullPointerException

android - 在 kivy 中重启应用程序