【问题标题】:Custom EditText in Android: How do you reference in XML Layout?Android 中的自定义 EditText:如何在 XML 布局中引用?
【发布时间】:2011-05-23 04:53:50
【问题描述】:

我创建了一个名为 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!");
    }

}

【问题讨论】:

    标签: android xml layout android-edittext android-custom-view


    【解决方案1】:

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

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

    【讨论】:

    • 我已经尝试过了(并添加了另一个构造函数),但我得到一个错误,说我需要指定宽度......我正在这样做。我尝试将开始标签更改为简单的 并且我得到了 inflate 异常。
    • 啊...发现了我的问题。有太多右括号 >。谢谢!
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-01-13
      • 1970-01-01
      • 1970-01-01
      • 2011-04-21
      • 2023-03-14
      • 2016-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多