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

时间:2019-02-07 08:35:21

标签: java android android-activity textview

我有两个活动,在活动(1)中有一个TextView,在活动(2)中有一个按钮。我想通过单击活动(2)中的按钮来更改活动(1)中的TextView颜色并保存该颜色。我该怎么办?

5 个答案:

答案 0 :(得分:3)

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

在活动2中,当您按下按钮时

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

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

有很多解决问题的方法

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

答案 3 :(得分:0)

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

要存储文本颜色:

  1. 使用SharedPreference

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

  3. 在Singleton类中保存颜色

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

更改文本颜色:

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

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

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

答案 4 :(得分:0)

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

第一

使用意图传递颜色值

代码

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

enter image description here

更新后

enter image description here

我希望它对您有用