2011-05-23 122 views
2

我创建了一个名为MyEditText(扩展EditText)的自定义EditText对象,以覆盖onSelectionChanged(int start,int end)方法。当我这样做并试图在我的XML布局中引用这个对象类型时,我总是得到一个错误的膨胀类消息。这是我目前有:Android中的自定义EditText:如何在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!"); 
    } 

} 

回答

4

此构造函数添加到您的自定义类

public MyEditText(Context context,AttributeSet attr) { 
    super(context,attr); 
    // TODO Auto-generated constructor stub 
} 
+0

我试过这个(并添加其他构造函数),并且我得到一个错误,说我需要指定宽度...我正在做的。我试着将开标签改为,我得到了膨胀异常。 – loeschg 2011-05-23 16:51:38

+0

啊......想通了我的问题。有太多的右括号>。谢谢! – loeschg 2011-05-23 16:58:04

1

你需要覆盖的EditText上,如果所有构造函数你想在XML布局中使用它。