如何保存切换按钮开/关选择的状态?

时间:2011-09-12 05:46:53

标签: android android-layout android-emulator android-widget android-ndk

您好我已经基于toggleButton选择实现了应用程序。但是当我关闭该应用程序然后重新打开它时,它将进入其“关闭”的默认选择。 那么任何budy都可以告诉我应该如何保存toogleButton选择的状态并根据toggleButton选择状态执行一些操作。 。 。 感谢。

3 个答案:

答案 0 :(得分:13)

使用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);
}

我没有验证这段代码,但是看一下网上的一些例子,很容易!

答案 1 :(得分:3)

使用像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);

答案 2 :(得分: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();
祝你好运