Что такое правильный способ расширения EditText?Каков правильный способ создания пользовательского представления на основе EditText?
Проблема заключается в следующем:
У меня есть пустое приложение из шаблона с двумя EditText:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="one"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="two"/>
</LinearLayout>
Он работает отлично:
Затем я создаю свой собственный вид из EditText:
public class CuteEditText extends EditText {
public CuteEditText(Context context) {
this(context, null);
}
public CuteEditText(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public CuteEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
// some special initialization will be here
}
}
И когда я изменяю EditText к моему CuteEditText, интерфейс работает неправильно:
Проблема не только с видом Ot UI. Если я напечатаю что-то в первом EditText, а затем коснувшись второго, произойдет nohing: вход будет продолжен первым.
Такое же поведение, если я наследую CuteEditText из AppCompatEditText.
Что не так?
Источники для эксперимента доступны в https://github.com/tseglevskiy/EditTextExperiment
вы должны пройти 'android.R.attr.editTextStyle' (вместо '0') в качестве последнего параметра' этого (контекст, ATTRS, 0); 'или просто позвонить' super' во всех ваши конструкторы – pskink