Android PreferenceActivity复选框

时间:2013-01-18 21:26:00

标签: android checkbox preferenceactivity

我正在尝试在启动应用时将复选框默认为True。 我使用了这个答案Android CheckBoxPreference Default Value但它仍默认为false并在LogCat中输出False。

我搞砸了的任何想法?我已经看了几个小时......提前谢谢!

public class Preferences extends PreferenceActivity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.layout.preferences);

        PreferenceManager.setDefaultValues(this, R.layout.preferences, true);
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
        boolean autoStart = prefs.getBoolean("checkBox1", true);

        System.out.println(autoStart);

    }

}

XML类:

  <?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

 <PreferenceCategory
   android:summary="Username and password information"
   android:title="User request" >
  <CheckBoxPreference
     android:key="checkBox1"
     android:title="request details" 
     android:defaultValue="true"/>

 </PreferenceCategory>
</PreferenceScreen>

1 个答案:

答案 0 :(得分:0)

在您的主要活动中,您可以执行以下操作:

    SharedPreferences prefs = getSharedPreferences("YOUR_PREFERENCES_KEY",false);
    boolean isSetToTrue = prefs.getBoolean("YOUR_BOOLEAN_KEY",false);

    if(isSetToTrue==false){

         //here set your checkBox to true
     }

主要活动是指首先启动应用程序时启动的活动。