繁体   English   中英

添加对设置屏幕android的支持

[英]Adding support for settings screen 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);
        }
    }
}

这是非常基本的逻辑:

int numOfCheck = 0;

//Check each checkbox
if(checkbox1.checked){
    numOfCheck+=1;
}

//... Add other checkboxes

if(numOfCheck>1||numOfCheck<1){
    //... Alert the user
}

很简单: RadioGroup

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM