如何在android中保存(切换)按钮状态?

Aak*_*dhi 5 android switch-statement togglebutton

我在我的andorid应用程序中使用SWITCH(如android切换按钮)而不是普通按钮.启用和禁用交换机时,代码工作正常.但我想存储开关的状态.假设我启用了交换机并关闭了我的应用程序,后台代码将正常运行但开关状态将更改为禁用.

每次关闭应用程序时,开关状态都将被禁用.有没有办法存储开关状态?

Sky*_*net 14

使用共享首选项或数据库来存储交换机的状态.您必须依赖Activity/fragment的生命周期方法.

以下可能对您有所帮助:

@Override
public void onClick(View v) 
{
    if (toggle.isChecked()) 
    {
        SharedPreferences.Editor editor = getSharedPreferences("com.example.xyz", MODE_PRIVATE).edit();
        editor.putBoolean("NameOfThingToSave", true);
        editor.commit();
    }
    else
    {
        SharedPreferences.Editor editor = getSharedPreferences("com.example.xyz", MODE_PRIVATE).edit();
        editor.putBoolean("NameOfThingToSave", false);
        editor.commit();
    }
}
Run Code Online (Sandbox Code Playgroud)

最后的指甲:

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    SharedPreferences sharedPrefs = getSharedPreferences("com.example.xyle", MODE_PRIVATE);
    toggle.setChecked(sharedPrefs.getBoolean("NameOfThingToSave", true));
}
Run Code Online (Sandbox Code Playgroud)

编辑:

上面的代码是有效的,但是我认为在onCreate中获取共享首选项值是一种不好的做法,最好是在一个单独的线程中创建一个能够很好地将app变量插入到app变量中的加载器类.