Wenn ich die folgende (Bug?):Android "android: input" überschreibt "android: digits", wenn Sie es nach dem Set "android: digits"
et_user_input.setKeyListener(DigitsKeyListener.getInstance("123-+"));
et_user_input.setInputType((EditorInfo.TYPE_TEXT_VARIATION_NORMAL));
Einstellen der input zweiten überschreibt die Ziffern I angegeben. Dies ist ziemlich problematisch, da ich eine benutzerdefinierte zusammengesetzte Ansicht verwende und ich nicht steuern kann, in welcher Reihenfolge der Switch-Fall basierend auf den Attributen auslöst.
Hier ist ein kleiner Ausschnitt aus meinem Code:
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" löst immer zuerst von "here1 Motiv" in dem Schaltergehäuse gefolgt.
Ist dieser "übergeordnete" Effekt das gewünschte Verhalten von Android oder ist es tatsächlich ein Fehler?