我想知道是否有办法通过单击 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/