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();
        }
    });