Android 如何在其他活动中更改textview的背景
我有一个带有文本视图和设置按钮的设置活动。 我希望每个按钮都可以更改其他活动中文本视图的背景 我需要关于如何做到这一点的示例代码 提前谢谢大家 代码:Android 如何在其他活动中更改textview的背景,android,Android,我有一个带有文本视图和设置按钮的设置活动。 我希望每个按钮都可以更改其他活动中文本视图的背景 我需要关于如何做到这一点的示例代码 提前谢谢大家 代码: 简而言之,您可以从初始化它开始。 使用get获取任何保存的值,如果未找到任何值,则获取默认值。 或者使用edit和put存储数据 SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); sharedPreferences
简而言之,您可以从初始化它开始。 使用
get
获取任何保存的值,如果未找到任何值,则获取默认值。
或者使用edit
和put
存储数据
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
sharedPreferences.getInt("key", defaultValue);
sharedPreferences.edit().putInt("key", value).apply()
编辑:
欢迎来到StackOverflow!在发布问题之前,请阅读关于如何提问的用户指南()谢谢Android-共享首选项谢谢,但是你能给我展示一个使用我的onclick代码的示例吗?我编辑了我的答案。不确定您对SharedRef了解多少,但它会将数据存储在手机上,以便稍后当应用程序重新启动时,它会从停止的位置继续。在本例中,我们将保存stateChanged,因此在设置侦听器之前,我们将其设置为上次的后台。我对共享首选项一无所知,但非常感谢让我尝试实现它,如果它有效,将向您反馈。因此,我已经实现了您的代码,它工作得很好,但问题是:如果我点击按钮,它会将“favon”设置为持久性背景,但当我再次点击按钮时,“favoff”被设置,当我退出并重新启动活动时,背景会变成“favon”,而它仍然应该是“favoff”,我需要更多的上下文,但我建议在“PreferenceManager.GetDefaultSharedReferences(this);”之后设置“stateChanged=SharedReferences.getBoolean(“textViewBackground”,true)”现在,stateChanged在onClickListener中总是从false开始,因为您没有将其设置为任何值,默认情况下它将为false。
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
sharedPreferences.getInt("key", defaultValue);
sharedPreferences.edit().putInt("key", value).apply()
final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
// Set up how the background was before
if (sharedPreferences.getBoolean("textViewBackground", true)) {
// Default background
tv.setBackgroundResource(R.drawable.favon);
} else {
// Other background
tv.setBackgroundResource(R.drawable.favoff);
}
btn.setOnClickListener(new View.OnClickListener() {
public boolean stateChanged;
public void onClick(View view) {
if (stateChanged) {
// reset background to default;
tv.setBackgroundResource(R.drawable.favon);
} else {
tv.setBackgroundResource(R.drawable.favoff);
}
stateChanged = !stateChanged;
sharedPreferences.edit().putBoolean("textViewBackground", stateChanged).apply();
}
});