0

当应用程序启动时,我试图让一个复选框默认为 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>
4

1 回答 1

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
     }

main Activity 表示首先启动应用程序的 Activity。

于 2013-01-18T22:10:29.780 回答