如何保存工具按钮开/关选择的状态?
Posted
技术标签:
【中文标题】如何保存工具按钮开/关选择的状态?【英文标题】:How to save the state of the toogleButton on/off selection? 【发布时间】:2011-11-15 01:45:43 【问题描述】:您好,我已经实现了基于切换按钮选择的应用程序。但是当我关闭该应用程序然后重新打开它时,它将进入其默认选择“关闭”。 那么任何伙伴都可以告诉 mw 我应该保存什么 togleButton 选择的状态并根据该 toggleButton 选择状态执行一些操作。 . . 谢谢。
【问题讨论】:
使用 SharedPreferences 并在退出时存储切换按钮状态。阅读更多alchemiaandroid.altervista.org/sharedPreferencesTutorial.html 【参考方案1】:使用 SharedPreferences。
tg = (ToggleButton) findViewById(R.id.toggleButton1);
tg.setOnClickListener(new OnClickListener()
@Override
public void onClick(View v)
if((tg.isChecked()))
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("tgpref", true); // value to store
editor.commit();
else
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("tgpref", false); // value to store
editor.commit();
);
这是检索值的方法:
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
boolean tgpref = preferences.getBoolean("tgpref", true); //default is true
if (tgpref = true) //if (tgpref) may be enough, not sure
tg.setChecked(true);
else
tg.setChecked(false);
这段代码我没有验证,但是看看网上的一些例子,很简单!
【讨论】:
即使我关闭活动或应用程序并重新启动它也可以保存吗? 在插入首选项值时我必须添加哪种模式? @iDroid Explorer 是的,这是保存您的首选项的方法,您可以保存它们并在应用程序关闭/重新启动后阅读它们:) 我已经按照你的解释做了。但是,如果我关闭活动然后再次运行它,即使我已将其选择为“打开”,togleButton 仍保持其默认状态“关闭”。为什么会这样? 它应该打开,因为它默认设置为 true...请向我们展示您的代码【参考方案2】:像 erdomester 建议的那样使用 SharedPreferences,但我稍微修改了他的代码。有一些不需要的条件。
tg = (ToggleButton) findViewById(R.id.toggleButton1);
tg.setOnClickListener(new OnClickListener()
@Override
public void onClick(View v)
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("tgpref", tg.isChecked()); // value to store
editor.commit();
);
这是检索值的方法:
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
boolean tgpref = preferences.getBoolean("tgpref", true); //default is true
tg.setChecked(tgpref);
【讨论】:
是的,这个是一样的,只是代码更短更透明:) 为什么我必须使用默认为 true ? 你也可以把 false 放在那里。这是您选择为默认值设置的内容。【参考方案3】:最好的办法,你可以设置tgbutton一样
主屏幕
Intent intent = new Intent(this, Something.class);
intent.putExtra(BOOLEAN_VALUE, Boolean.valueOf((tvConfigBoolean.getText().toString())));
startActivity(intent);
筛选一些东西
Bundle bundle = getIntent().getExtras();
tbtConfigBoolean.setChecked((bundle
.getBoolean(MainActivity.BOOLEAN_VALUE)));
并保存状态
editor.putBoolean("BooleanKey", tbtConfigBoolean.isChecked());
editor.commit();
祝你好运
【讨论】:
以上是关于如何保存工具按钮开/关选择的状态?的主要内容,如果未能解决你的问题,请参考以下文章