切换按钮未正确设置

时间:2012-06-18 10:34:09

标签: sharedpreferences togglebutton

我认为我可以简化问题域。基本上我已将首选项活动设置为打开按钮。问题出现了,当我点击关闭,然后回到首选项,它仍然在我试图创建一个布尔开关,但形成一些原因,它不起作用。代码发布在下面。

溶液 我认为解决方案是解决用户点击切换按钮并将其关闭的问题,因为我在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的初始值来解决这个问题。

1 个答案:

答案 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);