添加对设置屏幕的支持android

问题描述:

我在我的android应用程序中使用多个CheckBoxPreference来添加设置菜单。但是有没有办法说当时只检查一个CheckBoxPreference 必须添加对设置屏幕的支持android

下面是做到这一点的一种方式,但它肯定能得到改善!

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