如何在单击特定复选框时打开更多复选框,并将其值保存在共享首选项中

时间:2014-06-10 07:57:53

标签: android checkbox sharedpreferences

我的应用包含6个复选框,点击特定复选框激活其他3个ex  让复选框名称   人的   树   动物   点击树3新的chkbox打开命名   芒果   苹果   印楝 我也希望在共享偏好中保存这些值,这样当我打开应用程序时,它应保留保存的值  这是我试过的*所有东西都在自定义对话框中

 final Dialog dialog = new Dialog(MainActivity.this);
                            dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
                            dialog.setContentView(R.layout.menu);
                            Button dialogButton = (Button) dialog.findViewById(R.id.btncross);

                            // if button is clicked, close the custom dialog
                            dialogButton.setOnClickListener(new OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    dialog.dismiss();
                                }
                            });

                             dialog.show();

 cb1 = (CheckBox)dialog.findViewById(R.id.checkBoxHR);
                         cb1.setOnCheckedChangeListener(listener1);

                         cb2 = (CheckBox)dialog.findViewById(R.id.checkBoxDay);
                         cb2.setOnCheckedChangeListener(listener2);

                         cb3 = (CheckBox)dialog.findViewById(R.id.checkBox1);
                         cb3.setOnCheckedChangeListener(listener3);

                        cb10 = (CheckBox)dialog.findViewById(R.id.checkBox10);
                        cb10.setOnCheckedChangeListener(listener10);

                        cb5 = (CheckBox)dialog.findViewById(R.id.checkBox5);
                        cb5.setOnCheckedChangeListener(listener5);

                        cb8 = (CheckBox)dialog.findViewById(R.id.checkBox8);
                        cb8.setOnCheckedChangeListener(listener8);

preferences = getSharedPreferences("syllabus", 0);
                         cb1.setChecked(preferences.getBoolean("c1" ,false));
                         cb2.setChecked(preferences.getBoolean("c2" ,false));
                         cb3.setChecked(preferences.getBoolean("c3" ,false));
                         cb10.setChecked(preferences.getBoolean("c10" ,false));
                         cb5.setChecked(preferences.getBoolean("c5" ,false));
                         cb8.setChecked(preferences.getBoolean("c8" ,false));

private OnCheckedChangeListener listener2 = new OnCheckedChangeListener() {

            public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {
                if(isChecked){ 
                 cb1.setChecked(false);
                 cb2.setChecked(true);
                 cb3.setChecked(false);
                 cb10.setChecked(true);
                 cb5.setChecked(true);
                 cb8.setChecked(true);

                  preferences = getPreferences(MODE_PRIVATE);
                   Editor editor = getSharedPreferences("syllabus", 0).edit();
                   editor.putBoolean("c2", true);
                   editor.putBoolean("c1", false);
                   editor.putBoolean("c3", false);
                   editor.putBoolean("c10", true);
                   editor.putBoolean("c5", true);
                   editor.putBoolean("c8", true);
                   editor.commit();



                }else{


                     cb10.setChecked(false);
                     cb5.setChecked(false);
                     cb8.setChecked(false);


                }


            }
        };

我不知道为什么价值观没有妥善保存在错误的共享偏好

0 个答案:

没有答案