java - 从 float 操作按钮获取颜色并用它来更改编辑文本上的背景颜色

标签 java android button colors background-color

我想知道是否有办法通过单击 float 操作按钮来更改 edittext 对象的背景颜色。现在我不需要用于设置颜色或任何类型的代码,只需要涉及存储 float 操作按钮的颜色并将其分配给 edittext 对象的背景颜色的部分。

我尝试了此链接的解决方案: How to get background color of button. On click action depends on background color

上面的链接仅适用于常规按钮,但对于 float 操作按钮,我收到一条错误消息:

android.support.design.widget.ShadowDrawableWrapper cannot be cast to android.graphics.drawable.ColorDrawable

有没有办法让我将 Color Drawable 转换到 FAB 来完成我上面想做的事情?

这是我尝试过的:

FloatingActionButton btnTag = new FloatingActionButton(R.id.some_button);
ColorDrawable someColor = (ColorDrawable) btnTag.getBackground();
int colorId = someColor.getColor(); 

//Then set edittext's background color to same color as FAB with id some_button
EditText et= new EditText(R.id.some_et);
et.setBackgroundColor(colorId);

但这似乎不起作用,可能是由于 FAB 的绘制方式,与方形且没有圆角的常规按钮不同。所以我想知道是否有任何方法可以编辑我提供的代码以使其按预期工作?

如有任何帮助,我们将不胜感激。

编辑: 我必须提到,我需要它在 api 11 及更高版本上工作。

最佳答案

FloatingActionButton btnTag = new FloatingActionButton(R.id.some_button);
Drawable background = btnTag.getContentBackground();

EditText et= new EditText(R.id.some_et);
et.setBackground(background);

关于java - 从 float 操作按钮获取颜色并用它来更改编辑文本上的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38820340/

相关文章:

android - 如何在android editText中显示两位小数?

JAVA错误: "E/MediaPlayer: Error (-38,0)"

iOS swift : Open Mail app in inbox emails

iOS - 将按钮排成一行

button - yii 中条目的下一个/上一个按钮的最佳方式

java - 在 Java 8 流的 filter() 和 map() 中使用相同的变量

java - 我应该在 NPM 包中的哪里配置代码生成?

java - getWritableDatabase 函数导致错误

java - 无法在应用于 AJAX 的多个类上设置 CSS

android - 从服务访问共享首选项