如何在扩展的 EditText 上的嵌套 onClick 中调用 super.setText?

我想创建自定义 editText 当您单击 editText 时它会自动插入定义的文本。因此,我创建了扩展 editText 并实现 View.onClickListeners 的自定义 editText。但是在 onClick 方法中调用 super.setText 似乎不起作用。


这是自定义editText的代码


import android.content.Context;

import android.view.View;


public class CustomEditText extends android.support.v7.widget.AppCompatEditText implements View.OnClickListener {

    Context context;

    public CustomEditText(Context context) {

        super(context);

        this.context=context;

    }


    @Override

    public void onClick(View view) {

        super.setText("MY TEXT HERE");

    }

}


所以在 MainActivity onCreate 我只需要声明和设置监听器


        CustomEditText myText = new CustomEditText(this);

        myText.setOnClickListener(new CustomEditText(this));

        linearLayout.addView(myText);

如果我将 super.setText 放在构造函数中,它会填充自定义编辑文本。但是如果我把它放在 OnClick 上,它并没有填充我的自定义编辑文本,即使它确实在 OnClick 中调用了 super.setText(调试时)


这样做的目的是我想稍后在显示 datePicker 上创建自定义 editText 并在选择日期时输入日期。一切都应该在自定义 editText 类上完成,因此主 Activity 仅用于对象声明。


烙印99
浏览 130回答 1
1回答

侃侃无极

您可以使用clicked视图来设置文本。在你的内部试试这个onClick:@Overridepublic void onClick(View view) {    ((EditText)view).setText("MY TEXT HERE");}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java