2016-08-21 65 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));