繁体   English   中英

如何通过在另一个活动中单击按钮来更改TextView的颜色?

[英]How to change the color of a TextView in one activity by clicking a button in another?

我有两个活动,在活动(1)中有一个TextView,在活动(2)中有一个按钮。 我想通过单击活动(2)中的按钮来更改活动(1)中的TextView颜色并保存该颜色。 我怎样才能做到这一点?

您可以在单击按钮时使用“共享首选项”保存颜色,以后再获取它:

在活动2中,按下按钮时

 PreferenceManager.getDefaultSharedPreferences(MainActivity.this)
        .edit()
        .putString(key, value).apply();

在活动1中,获取您保存的值:

PreferenceManager.getDefaultSharedPreferences(DriverScreen.this).getString(key, "default value")

您必须使用数据库来保持textview颜色并从数据库中获取颜色。 单击按钮时,可以在数据库中进行更改。

有很多解决方案来解决您的问题

  1. 您可以使用sharepreference。
  2. 您可以使用单例类。
  3. 您可以使用事件监听器。
  4. 您可以为此使用intent.putExtra()

有很多方法可以实现您想要的,根据您的选择使用其中一种。

要存储文本颜色:

  1. 使用SharedPreference

  2. 使用会议室或SQLite数据库

  3. 在Singleton类中保存颜色

  4. 或在完成第二项活动后返回到第一项活动时,使用startActivityForResult()打开第二项活动。

更改文本颜色:

  1. 在第二个活动中按按钮时,使用侦听器更改文本颜色

  2. 如果您已经在项目中实现了EventBus,请使用它

  3. 使用本地广播接收器(单击第二活动的按钮后将广播发送到第一活动)

有很多方法可以更改其他活动的文本颜色。

第一

使用意图传递颜色值

Main2Activity.java

 button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            int color=getResources().getColor(R.color.colorAccent);
            Intent intent=new Intent(Main2Activity.this,MainActivity.class);
            intent.putExtra("color",color);
            startActivity(intent);
        }
    });

MainActivity.java

  android_text=findViewById(R.id.android_text);
    color=getIntent().getIntExtra("color",0);
    android_text.setTextColor(color);

第二种方式

使用静态变量

MainActivity.java

  static int color;
    android_text=findViewById(R.id.android_text);
    android_text.setTextColor(color);

Main2Activity.java

  button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
           //set color
            MainActivity.color=getResources().getColor(R.color.colorAccent);
            Intent intent=new Intent(Main2Activity.this,MainActivity.class);
            startActivity(intent);
        }
    });

在此处输入图片说明

更新后

在此处输入图片说明

希望它对你有用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM