Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 添加对android屏幕设置的支持_Java_Android - Fatal编程技术网

Java 添加对android屏幕设置的支持

Java 添加对android屏幕设置的支持,java,android,Java,Android,我正在android应用程序中使用几个复选框首选项来添加设置菜单。但是有没有一种方法可以说,一次只能选中一个CheckBoxPreference 这是非常基本的逻辑: int numOfCheck = 0; //Check each checkbox if(checkbox1.checked){ numOfCheck+=1; } //... Add other checkboxes if(numOfCheck>1||numOfCheck<1){ //... Al

我正在android应用程序中使用几个复选框首选项来添加设置菜单。但是有没有一种方法可以说,一次只能选中一个CheckBoxPreference

这是非常基本的逻辑:

int numOfCheck = 0;

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

//... Add other checkboxes

if(numOfCheck>1||numOfCheck<1){
    //... Alert the user
}
int numocheck=0;
//选中每个复选框
如果(复选框1.选中){
numocheck+=1;
}
//... 添加其他复选框

如果(numocheck>1 | | numocheck这里有一种方法,但肯定可以改进

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);
        }
    }
}
很简单