如何在android中将declare-styleable转换为int数组

问题描述

我正在创建一个自定义的 EmailValidatorEditText,用于随时随地验证电子邮件。为此,我必须在此处向 EmailValidatorEditText 添加自定义属性 state_error 这是一个布尔值并告诉电子邮件是否有效。 这是我的 attrs.xml

<resources>
    <declare-styleable name="EditTextErrorState">
        <attr name="state_error" format="boolean"/>
    </declare-styleable>
</resources>

在 Kotlin 中我们可以很容易地做到如下

private val stateError = intArrayOf(R.attr.state_error)

在java中我正在尝试做这样的事情

   protected int[] onCreateDrawableState(int extraSpace) {
        int[] drawableState= super.onCreateDrawableState(extraSpace+2);
        int[] stateError = new int[R.attr.state_error];

        if(shouldShowError){
            View.mergeDrawableStates(drawableState,stateError);
        }
        return drawableState;
    }

但是我在充气时遇到错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)