gpt4 book ai didi

android - 如何在Android上获取EditText的背景颜色

转载 作者:行者123 更新时间:2023-11-29 16:14:03 26 4
gpt4 key购买 nike

我想获取EditText的颜色,可以通过setBackgroundColor设置,但是没有getBackgroundColor函数

我找到了这个

EditText edtxt;
edtxt.setBackgroundColor(Color.GREEN);
PaintDrawable drawable;
Log.d(TAG,"1");
drawable = (PaintDrawable)edtxt.getBackground();
if(drawable.getPaint().getColor()==(int)Color.GREEN).........
Log.d(TAG,"2");

但它不工作并且崩溃

05-29 19:20:27.526: E/AndroidRuntime(20255): Caused by: java.lang.ClassCastException: android.graphics.drawable.StateListDrawable cannot be cast to android.graphics.drawable.PaintDrawable

最佳答案

这应该适用于 API 级别 11 及更高级别

ColorDrawable drawable = (ColorDrawable)edtxt.getBackground();
if(drawable.getColor()==(int)Color.GREEN)
System.out.println("It's Green");

如果您希望它在早期的 API 上运行,我建议使用自定义 EditText 并覆盖 setBackgroundColor(int color) 方法。

public class NewEditText extends EditText {
private int color;
public NewEditText(Context context) {
super(context);
// TODO Auto-generated constructor stub
}

public NewEditText(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}

public NewEditText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}


@Override
public void setBackgroundColor(int color) {
// TODO Auto-generated method stub
this.color=color;
super.setBackgroundColor(color);
}

public int getBackgroundColor() {

return color;
}
}

现在在布局中使用:

<com.aneesh.mypackage.NewEditText
android:layout_width="fill_parent"
android:id="@+id/customview"
android:layout_height="wrap_content"/>

您的 Activity 代码将更改为

NewEditText custView = (NewEditText)findViewById(R.id.customview);
custView.setBackgroundColor(Color.GREEN);
if(custView.getBackgroundColor()==(int)Color.GREEN)
System.out.println("It's green");

关于android - 如何在Android上获取EditText的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10809058/

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