如何解决在Android中扩展EditText我究竟做错了什么?
您将需要实现以下构造函数:
public class TestEditText extends EditText {
public TestEditText(Context context) {
super(context);
}
public TestEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}
public TestEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public TestEditText(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
}
例如,尝试执行以下操作:
public TestEditText(Context context, AttributeSet attrs) {
super(context, attrs);
Log.i("attribute name at index 0", attrs.getAttributeName(0));
}
您将在logcat中获得以下内容:
attribute name at index 0 = id
因此要将这些XML属性传递给Super类(EditText),您必须重写这些构造函数。
希望对您有所帮助。
解决方法
因此,我试图掌握在Android中使用自定义控件的方法。但是我的应用在尝试创建活动时崩溃。这是代码:
package com.myApp;
import android.content.Context;
import android.widget.EditText;
import android.view.View;
import android.view.View.OnClickListener;
public class MyEditText extends EditText implements OnClickListener {
public MyEditText(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public void FlashBorder()
{
//do some custom action
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
EditText txt = (EditText) v;
txt.selectAll();
}
}
这是布局xml:
<com.myApp.MyEditText
android:id="@+id/edtTaskName"
android:layout_height="wrap_content"
android:layout_width="match_parent"/>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。