gpt4 book ai didi

java - 如何使用彩色按钮作为用户选择从第二个 Activity 更改我的 MainActivity 的背景颜色?

转载 作者:行者123 更新时间:2023-11-30 12:02:53 25 4
gpt4 key购买 nike

我有一个包含多个 Activity 的程序。在我的 MainActivity 中,我可以单击一个按钮,将用户发送到 ThirdActivity_ColorPicker。在第三个 Activity 中,我有三个按钮,名为颜色,单击时应更改 MainActivity 的背景颜色。除了,它没有改变背景颜色。

在 MainActivity 中,我有一个将我切换到第三个 Activity 的 Intent。

private View.OnClickListener changeToColorPickerActivity = new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent goToThirdActivityColorPicker = new Intent(getApplication(), ThirdActivity_ColorPicker.class);
startActivityForResult(goToThirdActivityColorPicker, COLOR_PICKER_REQUEST);
}
};

在我的第三个 Activity 中,我有三个按钮,红色、蓝色和绿色,单击它们时应该将 MainActivity 背景颜色更改为所选颜色。

  private View.OnClickListener changeMainActivityToBlue = new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intentBlue = new Intent();
setResult(RESULT_CODE_BLUE, intentBlue);
finish();
}
};

回到 MainActivity,我有一个 onActivityResult 来接收来自第三个 Activity 的数据

  @Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
thirdAct = new ThirdActivity_ColorPicker();

if(requestCode == RESULT_OK && resultCode == thirdAct.RESULT_CODE_RED){
constraintLayout.findViewById(R.id.main_layout).setBackgroundColor(getColor(R.color.redBackground));
}else if(requestCode == RESULT_OK && resultCode == thirdAct.RESULT_CODE_GREEN){
constraintLayout.findViewById(R.id.main_layout).setBackgroundColor(getColor(R.color.greenBackground));
}else if(requestCode == RESULT_OK && resultCode == thirdAct.RESULT_CODE_BLUE){
constraintLayout.setBackgroundColor(getColor(R.color.blueBackground));
}
}

我想要的结果是背景颜色随着上面的代码而改变,但使用正确,因为我知道我在某处做错了什么。谢谢。

最佳答案

在您的 ThirdActivity_ColorPicker 中,更改每个颜色按钮点击的代码,即(红色、绿色、蓝色等),如下所示。这将为之前的 Activity 设置 Bundle 数据和结果。

 Intent intentRed = new Intent();
intentRed.putExtra(COLOR_CODE,
getApplicationContext().getResources().getColor(R.color.redBackground));
setResult(Activity.RESULT_OK, intentRed);
finish();

然后,在您的 MainActivity 中,在 onActivityResult 中,进行以下更改:

 if (requestCode == COLOR_PICKER_REQUEST && resultCode == RESULT_OK) {
if (data != null && data.getExtras() != null) {
Bundle bundle = data.getExtras();
int colorBg = bundle.getInt(COLOR_CODE);
findViewById(R.id.mainBg).setBackgroundColor(colorBg);
}
}

COLOR_PICKER_REQUESTint,您为 startActivityForResult 设置的 COLOR_CODE 是任何 String 用于 bundle key 。

关于java - 如何使用彩色按钮作为用户选择从第二个 Activity 更改我的 MainActivity 的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58172754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com