保存用户设置

时间:2011-06-22 11:25:35

标签: android

为什么你不想让镜头在放弃后保持变焦?

public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.menu_old);
         SharedPreferences preferences = getSharedPreferences("goodnight", MODE_PRIVATE);

           yourCheckBox = (CheckBox) findViewById( R.id.fonarb );
           yourCheckBox.setChecked(preferences.getBoolean("lol", false));
           yourCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener()

        {
        @Override
        public void onCheckedChanged(CompoundButton   yourCheckBox,
                boolean isChecked) {
             if (isChecked){

                 Parameters params = camera.getParameters();
                 params.setZoom(5);
                 camera.setParameters(params);


             }
             else {     
                 Parameters params = camera.getParameters();
                 params.setZoom(0);
                 camera.setParameters(params);

             }

        }


        });




 public void onStop() {
     super.onStop();
        SharedPreferences settings = getSharedPreferences("goodnight", MODE_PRIVATE);
         SharedPreferences.Editor editor = settings.edit();
         editor.putBoolean("lol", yourCheckBox.isChecked());


         editor.commit();
    }

1 个答案:

答案 0 :(得分:1)

在设置复选框之前,您是否尝试注册听众?

只需交换以下两行:

       yourCheckBox.setChecked(preferences.getBoolean("lol", false));
       yourCheckBox.setOnCheckedChangeListener...

获得

       yourCheckBox.setOnCheckedChangeListener...
       yourCheckBox.setChecked(preferences.getBoolean("lol", false));

只要你在复选框上有一个监听器(我建议你使用OnClickListener而不是onCheckedChange),你就不需要覆盖onStop。

但是如果你想覆盖onStop,我还建议你在开头使用onStop方法调用super.onStop,而不是在开头。

顺便说一下,您可以使用PreferenceActivity自动保存选项。

此致  斯特凡