2
私は次の操作を行う場合には(バグ?):アンドロイド「アンドロイド:inputType」上書き「アンドロイド:数字を」あなたは後にそれを設定した場合、「アンドロイド:数字」
et_user_input.setKeyListener(DigitsKeyListener.getInstance("123-+"));
et_user_input.setInputType((EditorInfo.TYPE_TEXT_VARIATION_NORMAL));
inputTypeの第二の設定数字を上書きしますI指定された。カスタムコンパウンドビューを使用しているため、スイッチのケースが属性に基づいてどのような順序でトリガーするかを制御することができないため、これはかなり頭痛です。
public ValidationEditText(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.ValidationEditText);
int count = typedArray.getIndexCount();
for (int i = 0; i < count; i++) {
int attr = typedArray.getIndex(i);
switch (attr) {
case R.styleable.ValidationEditText_android_inputType:
LogUtil.a(getClass(), "Here1");
et_user_input.setInputType(typedArray.getInt(attr, EditorInfo.TYPE_TEXT_VARIATION_NORMAL));
break;
case R.styleable.ValidationEditText_android_digits:
LogUtil.a(getClass(), "Here2");
et_user_input.setKeyListener(DigitsKeyListener.getInstance(typedArray.getString(attr)));
break;
}
}
}
「Here2」常に最初にスイッチケースには「Here1」に続くトリガー:
は、ここに私のコードの小さなスニペットです。
この「オーバーライド」効果はAndroidの望ましい動作か、実際はバグですか?