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

时间:2019-01-18 14:37:40

标签: java android

我想在单击editText时创建自定义editText,它将自动插入定义的文本。因此,我创建了自定义editText,它扩展了editText并实现了View.onClickListeners。但是在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放入构造函数中,它将填充自定义的Edit Text。但是,如果我将它放在OnClick上,尽管它确实在OnClick内部调用了super.setText(在调试时),但它并没有填充我的自定义Edit Text

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

1 个答案:

答案 0 :(得分:0)

您可以使用clicked视图来设置文本。

在您的onClick中尝试一下:

@Override
public void onClick(View view) {
    ((EditText)view).setText("MY TEXT HERE");
}