如何在 android 中保存开关(按钮)的状态
how to save the state of switch(button) in android
我在我的 android 应用程序中使用 switch
(例如 android togglebutton
)而不是普通按钮。该代码在启用和禁用开关时工作正常。但我想存储开关的状态。假设我启用开关并关闭我的应用程序,后台代码将 运行 正常,但开关状态将更改为禁用。
每次我关闭应用程序时,开关状态都会变为禁用状态。有没有办法存储开关状态?
mySwitch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if (mySwitch.isChecked()) {
SharedPreferences.Editor editor = getSharedPreferences ("com.mobileapp.smartapplocker",
MODE_PRIVATE).edit();
editor.putBoolean("Service On", true);
editor.commit();
}
else {
SharedPreferences.Editor editor = getSharedPreferences ("com.mobileapp.smartapplocker",
MODE_PRIVATE).edit();
editor.putBoolean("Service Off", false);
editor.commit();
}
}
}
我认为您对共享首选项在 android 中的工作方式感到困惑。它们基本上是键值对。因此,为了检索特定值,密钥必须相同。
下面举个例子:
mySwitch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
SharedPreferences.Editor editor = getSharedPreferences("com.mobileapp.smartapplocker", MODE_PRIVATE).edit();
editor.putBoolean("service_status", mySwitch.isChecked());
editor.commit();
}
}
现在你在哪里检查服务
SharedPreferences prefs = getSharedPreferences("com.mobileapp.smartapplocker", MODE_PRIVATE);
boolean switchState = pref.getBoolean("service_status", false);
if(switchState){
//Do your work for service is selected on
} else {
//Code for service off
}
希望对你有帮助
我在我的 android 应用程序中使用 switch
(例如 android togglebutton
)而不是普通按钮。该代码在启用和禁用开关时工作正常。但我想存储开关的状态。假设我启用开关并关闭我的应用程序,后台代码将 运行 正常,但开关状态将更改为禁用。
每次我关闭应用程序时,开关状态都会变为禁用状态。有没有办法存储开关状态?
mySwitch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if (mySwitch.isChecked()) {
SharedPreferences.Editor editor = getSharedPreferences ("com.mobileapp.smartapplocker",
MODE_PRIVATE).edit();
editor.putBoolean("Service On", true);
editor.commit();
}
else {
SharedPreferences.Editor editor = getSharedPreferences ("com.mobileapp.smartapplocker",
MODE_PRIVATE).edit();
editor.putBoolean("Service Off", false);
editor.commit();
}
}
}
我认为您对共享首选项在 android 中的工作方式感到困惑。它们基本上是键值对。因此,为了检索特定值,密钥必须相同。
下面举个例子:
mySwitch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
SharedPreferences.Editor editor = getSharedPreferences("com.mobileapp.smartapplocker", MODE_PRIVATE).edit();
editor.putBoolean("service_status", mySwitch.isChecked());
editor.commit();
}
}
现在你在哪里检查服务
SharedPreferences prefs = getSharedPreferences("com.mobileapp.smartapplocker", MODE_PRIVATE);
boolean switchState = pref.getBoolean("service_status", false);
if(switchState){
//Do your work for service is selected on
} else {
//Code for service off
}
希望对你有帮助