添加对设置屏幕android的支持

时间:2011-08-26 22:50:17

标签: java android

我在我的Android应用程序中使用了几个CheckBoxPreference来添加设置菜单。但有没有办法说当时只检查一个且只有一个CheckBoxPreference 必须

3 个答案:

答案 0 :(得分:1)

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

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);
        }
    }
}

答案 1 :(得分:0)

这是非常基本的逻辑:

int numOfCheck = 0;

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

//... Add other checkboxes

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

答案 2 :(得分:0)

很简单:RadioGroup