[英]How to change TextView fontSize of one activity through another activity?
[英]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颜色并从数据库中获取颜色。 单击按钮时,可以在数据库中进行更改。
有很多解决方案来解决您的问题
有很多方法可以实现您想要的,根据您的选择使用其中一种。
要存储文本颜色:
使用SharedPreference
使用会议室或SQLite数据库
在Singleton类中保存颜色
或在完成第二项活动后返回到第一项活动时,使用startActivityForResult()打开第二项活动。
更改文本颜色:
在第二个活动中按按钮时,使用侦听器更改文本颜色
如果您已经在项目中实现了EventBus,请使用它
使用本地广播接收器(单击第二活动的按钮后将广播发送到第一活动)
有很多方法可以更改其他活动的文本颜色。
第一
使用意图传递颜色值
码
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.