Пользовательский EditText в Android: как вы ссылаетесь в XML Layout? - PullRequest
2 голосов
/ 23 мая 2011

Я создал собственный объект EditText с именем MyEditText (extends EditText), чтобы переопределить метод onSelectionChanged (int start, int end).Когда я делаю это и пытаюсь сослаться на этот тип объекта в моем макете XML, я всегда получаю сообщение о раздувании класса.Вот что у меня сейчас:

<cse.intro.networking.security.MyEditText
     android:layout_width="match_parent" android:id="@+id/editText2"
     android:layout_height="match_parent" android:text="@string/editTextBoxInit">
</cse.intro.networking.security.MyEditText>

MyEditText.java:

package cse.intro.networking.security;

import android.content.Context;
import android.util.Log;
import android.widget.EditText;

public class MyEditText extends EditText {
    private final String tag = "SimpleGUI";
    public MyEditText(Context context) {
        super(context);
    }

    @Override
    public void onSelectionChanged(int selStart, int selEnd) {
        Log.v(tag, "onSelectionChanged!");
    }

}

Ответы [ 2 ]

4 голосов
/ 23 мая 2011

Добавьте этот конструктор в ваш пользовательский класс

public MyEditText(Context context,AttributeSet attr) {
    super(context,attr);
    // TODO Auto-generated constructor stub
}
1 голос
/ 23 мая 2011

Вам нужно переписать все конструкторы для EditText, если вы хотите использовать его в макете XML.

...