【发布时间】:2017-05-11 22:08:35
【问题描述】:
我正在制作一个应用,其中有两个切换按钮,一个用于 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 的东西,一切正常,除了那个开关按钮的状态。
如果您需要更多信息,请告诉我。 谢谢
【问题讨论】:
-
代码哪里出错了?我还是不明白。
-
我有两个切换按钮,一个用于 facebook 登录,另一个用于 twitter 登录。我也有两个框架布局(每个一个,我显示基本信息并允许用户发推文和分享/喜欢)。我的问题是,如果我关闭应用程序并重新启动它,我可以恢复会话但切换按钮处于“关闭”阶段(如果我没有实现
SharedPreferencesthinga,并且实现 SharedPreference 后的错误是Callback must not be null..(1/2) -
我相信是这样,因为它正在调用
onCheckChanged函数(因为我正在更改相同的状态。如果我删除了SharedPreferences首选项,它工作正常。我有一个函数可以检查twitter 的活跃会话也是。(2/2) -
向我们展示完整的日志,上面写着
Callback must not be null.,即哪一行是这样说的? -
谢谢。但是在调整了 mahmoud 的答案后,我得到了它的工作。我不得不对此做出一些改变。再次感谢。
标签: android twitter twitter-fabric