Android 中的自定义 EditText:如何在 XML 布局中引用?

发布于 2024-11-09 10:14:04 字数 899 浏览 3 评论 0原文

我创建了一个名为 MyEditText (扩展 EditText)的自定义 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!");
    }

}

I've created a custom EditText object called MyEditText (extends EditText) in order to override the onSelectionChanged(int start, int end) method. When I do this and attempt to reference this object type in my XML layout, I always get an error inflating class message. This is what I currently have:

<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!");
    }

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

感性不性感 2024-11-16 10:14:04

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

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

Add this constructor to your custom class

public MyEditText(Context context,AttributeSet attr) {
    super(context,attr);
    // TODO Auto-generated constructor stub
}
无悔心 2024-11-16 10:14:04

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

You need to overwrite all the constructors for the EditText if you want to use it in the XML layout.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文