0

我想我可以简化问题域。基本上我已经将首选项活动设置为打开按钮。当我单击关闭然后返回首选项并且它仍然打开时出现问题我试图创建一个布尔开关但由于某种原因它不起作用。代码贴在下面。

解决方案 我认为解决方案是解决用户单击切换按钮并将其关闭时的问题,因为我已在 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 文件中设置切换按钮的初始值来解决这个问题。

4

1 回答 1

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);
于 2012-08-05T12:18:12.413 回答