我正在制作一个应用程序,其中有两个开关按钮,一个用于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