我正在製作一個應用程序,其中有兩個開關按鈕,一個用於twitter登錄,另一個用於twitter登錄。關閉應用程序後保持開關按鈕的狀態
,但沒有其他職位去幫助我,這就是爲什麼發佈的新問題。
所以基本上有一個開關按鈕來登錄和註銷。它工作得很好。如果我關閉應用程序並再次返回到應用程序,那麼也可以正常工作,即會話保持完好,但狀態按鈕被設置爲false,即不活動。
我跟着其他的答案,如果我實現,我得到一個錯誤Caused by: java.lang.IllegalArgumentException: Callback must not be null.
(用於twitter登錄)。
我會發布一些代碼,以解釋情況。
tSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if(isChecked){
SharedPreferences.Editor editor = getSharedPreferences("com.example.anubhaw.socialtwitter", MODE_PRIVATE).edit();
editor.putBoolean("service_status", tSwitch.isChecked());
editor.commit();
loginButton.performClick();
}else{
Twitter.getInstance();
Twitter.logOut();
twitter_layout.setVisibility(View.GONE);
Toast.makeText(getApplicationContext(), "Logged out from Twitter", Toast.LENGTH_SHORT).show();
}
}
});
SharedPreferences prefs = getSharedPreferences("com.example.anubhaw.socialtwitter", MODE_PRIVATE);
boolean tState = prefs.getBoolean("service_status", false);
if(tState){
//Do your work for service is selected on
Toast.makeText(getApplicationContext(), "Inside the sharedPref", Toast.LENGTH_SHORT).show();
tSwitch.setChecked(true);
} else {
//Code for service off
}
如果我刪除sharedPref的東西,一切工作正常,除了該開關按鈕的狀態。
如果您需要更多信息,請讓我知道。 感謝
代碼出錯了?我仍然不明白。 – Blundell
我有兩個開關按鈕,一個用於Facebook登錄,另一個用於twitter登錄。我也有兩個框架佈局(每個框架佈局,我展示基本信息並允許用戶推特和分享/喜歡)。我的問題是,如果關閉應用程序並重新啓動它,我可以返回會話,但切換按鈕處於「關閉」階段(如果我沒有實現'SharedPreferences'事件,並且實現SharedPreference之後的錯誤是(1/2) – driftking9987
我認爲這是因爲它調用'onCheckChanged'函數(因爲它正在改變相同的狀態,如果我刪除'SharedPreferences'首選項,它工作正常(2/2) – driftking9987