Java 如何知道用户何时完成键入?

Java 如何知道用户何时完成键入?,java,android,textview,editview,Java,Android,Textview,Editview,在Android Studio中,我想制作一个程序,当单击时,TextView将更改为EditView。用户完成键入后,我希望EditText更改回显示输入值的TextView 我该怎么做?这就是我到目前为止所做的: loc > TextView, edit_loc > EditText loc.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v)

在Android Studio中,我想制作一个程序,当单击时,
TextView
将更改为
EditView
。用户完成键入后,我希望
EditText
更改回显示输入值的
TextView

我该怎么做?这就是我到目前为止所做的:

loc > TextView, 
edit_loc > EditText

loc.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        loc.setVisibility(View.GONE);
        edit_loc.setVisibility(View.VISIBLE);
    }
});

您可以简单地编辑文本视图,并在用户完成键入时将其设置为clickable false。。要了解用户何时键入或不键入,请使用以下代码:

 editText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
        //when user is typing
        }

        @Override
        public void afterTextChanged(Editable editable) {
         // after user complete typing
        }
    });

关于@amit pandey,这不是一个完整的解决方案,因为每次键入
TextWatcher
后都会被调用

检查此链接,这是更好的解决方案,但不是最好的