我有两个活动,在活动(1)中有一个TextView,在活动(2)中有一个按钮。我想通过单击活动(2)中的按钮来更改活动(1)中的TextView颜色并保存该颜色。我该怎么办?
答案 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)
有很多解决问题的方法
答案 3 :(得分:0)
有很多方法可以实现您想要的,根据您的选择使用其中一种。
要存储文本颜色:
使用SharedPreference
使用会议室或SQLite数据库
在Singleton类中保存颜色
,或者如果您在完成第二项活动后返回到第一项活动,则使用startActivityForResult()打开第二项活动。
更改文本颜色:
在第二个活动中按下按钮时,使用侦听器更改文本颜色
如果您已经在项目中实现了EventBus,请使用
使用本地广播接收器(单击第二个活动的按钮后将广播发送到第一个活动)
答案 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);
}
});
更新后
我希望它对您有用