我认为我可以简化问题域。基本上我已将首选项活动设置为打开按钮。问题出现了,当我点击关闭,然后回到首选项,它仍然在我试图创建一个布尔开关,但形成一些原因,它不起作用。代码发布在下面。
溶液 我认为解决方案是解决用户点击切换按钮并将其关闭的问题,因为我在public void Oncreate方法中将clickable设置为true。每次用户返回到首选项活动时,该值都将设置为on。我认为覆盖该参数的条件将解决我的问题。
prefs = getSharedPreferences(prefName, 0 );
SharedPreferences.Editor editor = prefs.edit();
if (twitter.isChecked() == true)
{
onoffTwitter = true;
editor.putBoolean(TWITTER_KEY, true);
onoffTwitter = true;
}
if (twitter.isChecked() == false)
{
onoffTwitter = false;
editor.putBoolean(TWITTER_KEY, false);
onoffTwitter = false;
}
Toast.makeText(getBaseContext(),
"was the twitter checked" + twitter.isChecked(),
Toast.LENGTH_SHORT).show();
editor.commit();
此代码来自另一个隐藏按钮的活动。
SharedPreferences prefs = getSharedPreferences(prefName, 0);
buttonStatus = prefs.getBoolean(TWITTER_KEY, false);
Log.e(LOGS, "What is the value for the twitter feed" + buttonStatus);
Toast.makeText(AndroidGUIActivity.this,
" What is the value for the twitter feed" + buttonStatus,
Toast.LENGTH_SHORT).show();
if (buttonStatus==false) twitter.setVisibility(View.GONE);
我相信我可以通过在xml文件中设置togglebutton的初始值来解决这个问题。
答案 0 :(得分:0)
问题是我没有将偏好值传递给twitter,但因此没有存储值。
prefs = getSharedPreferences(prefName, 0 );
buttonStatus = prefs.getBoolean(TWITTER_KEY, true);
Log.e(LOGS, "What is the value for the timer feed" + buttonStatus);
twitter.setChecked(buttonStatus);