当前位置: 首页 > 面试题库 >

在Android中扩展EditText。我究竟做错了什么?

白淇
2023-03-14
问题内容

因此,我试图掌握在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"/>

问题答案:

您将需要实现以下构造函数:

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),您必须重写这些构造函数。

希望对您有所帮助。



 类似资料:
  • 问题内容: 我有一些代码来计算圆的属性: 它计算周长,但不计算其余部分。 问题答案: 是一个,也一个,这意味着不能在第二个打印语句中使用。试试那里。 回想一下,这是浮点数,而整数。在的文档中对此进行了概述(请参阅“ 格式化字符串语法”)。

  • 问题内容: 我遇到了使用方法的一段代码。不知道这叫什么,我很难找到它。 这是我尝试了解的内容: 结果: 但是,我认为这是在运行时发生的,它会告诉编译器确实是一个字符串,并且可以用来告诉编译器变量是某种类型的。我的理解正确吗? 游乐场 问题答案: 被称为 类型断言 。如 有效围棋中所述 : 类型断言采用接口值并从中提取指定的显式类型的值。 因此,是的,您从类型断言中获得的值不是接口值,而是显式类型。

  • 问题内容: 我在jquery图像滑块演示中找到了reset.css文件,但它从未包含在主index.html文件中。应该做什么,更重要的是,您将它放在哪里?你把它之前 任何引用的样式表()? 这是reset.css内部的代码 问题答案: 最初,关于样式的工作方式还没有标准化,每个浏览器都实现了自己认为正确的方式。您在IE中看到太多有关样式错误的问题的原因之一是,因为IE是样式方面与其他浏览器最不相

  • 问题内容: 因此,我发现了有关JQuery的类似问题,您无需在其中进行解析。由于我使用的是AJAX XMLHttpRequest,据我所知,解析是必要的。错误在行上给出: 错误: 功能的相关部分: 返回的JSON如下所示(不包含换行符): JSONLint表示以上内容有效。我想我将看看XMLHttpRequest是否做任何奇怪的事情。Firefox继续运行(即使firebug显示错误),IE9仍在

  • 我正在做一个项目,我的意图是运行一个玉米作业,并发送邮件给我的朋友,祝他们生日,我能够从MySQL DB获取电子邮件,并将其与当前日期进行比较,但当涉及到发送电子邮件时,我得到NullPointerException。 我确信应用程序属性没有问题,我在其他项目中也使用了它们,它们的功能正常 这是我得到以下信息的错误

  • 我正试图将即时消息添加到现有的应用程序中。但是我不确定应该如何配置socket.io模块。我已经尝试了以下方法: 因为打开一个页面时没有记录connected,所以我假设丢失了一些东西。我的错误在哪里?