2016-08-21 62 views
0

我已经使用共享首选项存储了复选框值(选中/取消选中),但在关闭并重新打开应用程序时传递复选框的动作时/遇到问题。
说明:单击复选框时不同活动中的按钮隐藏/显示(即,check =显示&取消选中=隐藏)正常工作。
当我关闭应用程序,并重新打开该复选框撑检查,但是按钮未出现使用共享偏好重新打开应用程序的复选框传递操作

final CheckBox checkBox = (CheckBox) findViewById(R.id.add_fb); 
     SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); 
     final SharedPreferences.Editor editor = preferences.edit(); 

     checkBox.setChecked(preferences.getBoolean("checked",false)); 

     checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
      @Override 
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       isCheckedValue = isChecked; 
       editor.putBoolean("checked", isChecked); 
       editor.apply(); 
      } 
     }); 

    } 

我试图实现在onStart()将数据传递

复选框代码保存提供的if-else条件

@Override 
    protected void onStart() { 
     SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); 
     final SharedPreferences.Editor editor = preferences.edit(); 
     super.onStart(); 
     if(checkBox.isChecked()) { 
      editor.putBoolean("checked", true); 
      editor.apply(); 
     }else{ 
      editor.putBoolean("checked", false); 
      editor.apply(); 
     } 
    } 

这是我传递的数据一旦选中该复选框

@Override 
      public void onBubbleClick(BubbleLayout bubble) { 
       Intent in = new Intent(MainActivity.this, PopUpWindow.class); 
       in.putExtra("yourBoolName", isCheckedValue); 
       startActivity(in); 

      } 
+0

我很困惑你的流量。假设你有两个活动:'Activity1' [A1](带复选框)和'Activity2' [A2](带按钮)。您可以将适当的值从“A1到A2”传递。当你说你把应用程序的背景。那之后流量究竟是什么? – Shaishav

+0

@Shaishav我不把应用程序放在后台我完全关闭应用程序并重新开始,当我再次启动应用程序时,checbox(add_fb)被选中,但是需要显示的不同活动中的按钮不显示 (我可以简单介绍聊天过程,但我不知道如何开始) –

+1

Put:'isCheckedValue = preferences.getBoolean(“checked”,false); checkBox.setChecked(isCheckedValue);'当前你调用checkBox.setChecked()的地方。 – Shaishav

回答

0

而是在发送 'isCheckedValue' 的 'onBubbleClickMethod' 试试这个 -

in.putExtra( “yourBoolName”,preferences.getBoolean( “选中”,FALSE));