📌  相关文章
📜  如何在Android中检查EditText的键入状态?

📅  最后修改于: 2021-05-13 16:44:12             🧑  作者: Mango

在本文中,我们将实现一个重要且非常有趣的功能。通过各种社交媒体平台与朋友聊天时,您可能会发现,如果您的朋友正在输入内容,则显示“正在键入”。这里将要实现相同。当我们开始输入内容时,它将显示输入内容,而当我们删除所有内容时,它将显示停止输入内容。下面给出了一个示例GIF,以了解我们将在本文中做些什么。注意,我们将使用Java语言实现该项目。

在Android示例GIF中检查EditText的键入状态

分步实施

步骤1:创建一个新项目

要在Android Studio中创建新项目,请参阅如何在Android Studio中创建/启动新项目。请注意,选择Java作为编程语言。

步骤2:使用activity_main.xml文件

导航到应用程序> res>布局> activity_main.xml,然后将以下代码添加到该文件中。以下是activity_main.xml文件的代码。

XML


  
    
      
    
  


Java
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.TextView;
  
import androidx.appcompat.app.AppCompatActivity;
  
public class MainActivity extends AppCompatActivity {
  
    EditText msg;
    TextView confirm;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        msg = findViewById(R.id.check);
        confirm = findViewById(R.id.confirm);
          
        // When there is change in state of edittext input
        msg.addTextChangedListener(new TextWatcher() {
            @Override
            // when there is no text added
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                if (s.toString().trim().length() == 0) {
                    // set text to Not typing
                    confirm.setText("Not Typing");
                } else {
                    // set text to typing
                    confirm.setText(" Typing");
                }
            }
  
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                confirm.setText(" Typing");
            }
  
            // after we input some text
            @Override
            public void afterTextChanged(Editable s) {
                if (s.toString().trim().length() == 0) {
                    // set text to Stopped typing
                    confirm.setText("Stopped Typing");
                }
            }
        });
    }
}


步骤3:使用MainActivity。 Java文件

转到MainActivity。 Java文件并参考以下代码。下面是MainActivity的代码。 Java文件。在代码内部添加了注释,以更详细地了解代码。

Java

import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.TextView;
  
import androidx.appcompat.app.AppCompatActivity;
  
public class MainActivity extends AppCompatActivity {
  
    EditText msg;
    TextView confirm;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        msg = findViewById(R.id.check);
        confirm = findViewById(R.id.confirm);
          
        // When there is change in state of edittext input
        msg.addTextChangedListener(new TextWatcher() {
            @Override
            // when there is no text added
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                if (s.toString().trim().length() == 0) {
                    // set text to Not typing
                    confirm.setText("Not Typing");
                } else {
                    // set text to typing
                    confirm.setText(" Typing");
                }
            }
  
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                confirm.setText(" Typing");
            }
  
            // after we input some text
            @Override
            public void afterTextChanged(Editable s) {
                if (s.toString().trim().length() == 0) {
                    // set text to Stopped typing
                    confirm.setText("Stopped Typing");
                }
            }
        });
    }
}

输出: