java - 对于空的 EditText,getText() 返回什么?

标签 java android

我正在尝试检查 EditText 是否为空。为此,我尝试了以下方法:

  String text = gateNumberEditText.getText().toString();
  if (text.equals("")){
      \\do something
  } else {
       \\do something else
  }

还尝试过:text == null、text == ""、text.equals(null)

似乎什么都不起作用,它总是传递给其他人。这是为什么?

**isEmpty() 解决了我的问题。 但如果有人向我解释为什么它一开始不起作用,我会很高兴?

最佳答案

我之前的评论摘要:

String text = gateNumberEditText.getText().toString();
  if (text.equals("")){

                \\do something
            }else {
                \\do something else
            }

如果您有一个 null,此代码将在 toString() 方法调用上引发 NullPointerException

由于 getText() 返回一个 String,因此没有理由调用 toString()

当您想要比较 String 对象的值时,请始终使用 equals(IgnoreCase)() 方法。

此外,请记住,""(空格)和 "" 不是两个相同的值,因此比较它们确实会返回 false 。 将您的代码更改为:

String text = gateNumberEditText.getText().trim();
// the trim() method will remove all leading and trailing spaces
  if (text.isEmpty()){ // this method of the String class, will check the length of the String.
// after the trim(), for an empty String (or only spaces), that would be zero
                \\do something
            }else {
                \\do something else
            }

关于java - 对于空的 EditText,getText() 返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48502973/

相关文章:

Java JLabel 背景颜色不起作用?

java - firebase 用户在第一次调用后每次都会返回 null

android - 如何将值传递给 Android 上的 Facebook 对话框

android - 带进度条的 adb 推/拉

android - 以编程方式发送带有附件的电子邮件时出现问题

java - Hadoop 中的简单程序得到 ClassNotFoundException

java - 使用brew构建OpenCV时设置目标java版本

java - 使用java删除链表中的节点

java - Android 单元测试和类成员可见性

java - 如何在特定情况下捕获OnTouchEvent?