Java 保存按钮的背景?
我有一个有背景的切换按钮。我想在用户关闭应用程序或离开MainActivity时保存该后台状态。我设法保存了切换布尔值的状态,但没有保存切换本身的图像背景。有人有什么想法吗?请参阅下面我的代码以了解更多信息Java 保存按钮的背景?,java,android-studio,save,sharedpreferences,Java,Android Studio,Save,Sharedpreferences,我有一个有背景的切换按钮。我想在用户关闭应用程序或离开MainActivity时保存该后台状态。我设法保存了切换布尔值的状态,但没有保存切换本身的图像背景。有人有什么想法吗?请参阅下面我的代码以了解更多信息 private ToggleButton mtoggle; public static final String SHARED_PREFS = "sharedPrefs"; public static final String M_TOGGLE = "mtoggle"; private
private ToggleButton mtoggle;
public static final String SHARED_PREFS = "sharedPrefs";
public static final String M_TOGGLE = "mtoggle";
private boolean SwitchON_OFF;
以下是我保存、加载和更新的方法。同样,保存切换布尔值的状态没有问题。只是不知道从哪里开始保存切换按钮的背景状态(按下后背景从灰色变为黄色,反之亦然)。需要保存该文件的每个状态
public void saveData(){
SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREFS,MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean(M_TOGGLE,mtoggle.isChecked()); // saving toggle state no problem.
editor.apply();
Toast.makeText(this, "Saved", Toast.LENGTH_SHORT ).show();
}
public void loadData(){
SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREFS,MODE_PRIVATE);
SwitchON_OFF = sharedPreferences.getBoolean(M_TOGGLE,false);
}
public void updateViews(){
mtoggle.setChecked(SwitchON_OFF);
}
您可以这样做:-
根据您的要求,如果条件允许,您可以使用
可绘制文件:-
对于两种颜色:-
第一名:-
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
android:width="1dp"
android:color="@color/sky_blue"
android:drawable="@android:color/transparent" />
<solid android:color="@color/message_fragment_button" />
<corners
android:bottomLeftRadius="@dimen/dp_10"
android:bottomRightRadius="@dimen/dp_10"
android:topLeftRadius="@dimen/dp_10"
android:topRightRadius="@dimen/dp_10" />
</shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
android:width="1dp"
android:color="@color/sky_blue"
android:drawable="@android:color/transparent" />
<solid android:color="@color/sky_blue" />
<corners
android:bottomLeftRadius="@dimen/dp_10"
android:bottomRightRadius="@dimen/dp_10"
android:topLeftRadius="@dimen/dp_10"
android:topRightRadius="@dimen/dp_10" />
</shape>
但是是的,您需要在XML文件中定义最初的背景颜色
if (MessageConfirmed.equals("Yes")) {
btn_confirm.setText("Confirmed");
btn_confirm.setBackground(ContextCompat.getDrawable(context,
R.drawable.confirm_button_blue));
btn_confirm.setEnabled(false);
} else {
btn_confirm.setText("Confirm");
btn_confirm.setBackground(ContextCompat.getDrawable(context,
R.drawable.confirm_button_green));
btn_confirm.setEnabled(true);
}