【问题标题】:editText.toString=="something" always false [duplicate]editText.toString=="something" 总是假的[重复]
【发布时间】:2013-03-14 04:50:02
【问题描述】:

我正在尝试检查 editText 中的文本是否等于某个字符串。 这是我的 if(每次按下按钮时都会出现):

if(tx.getText().toString()=="bla")

这是交易: tx=(EditText)findViewById(R.id.editText1);

我不知道为什么,但是 if 从来都不是真的,我试图用这种方式通过 toast 来检查它:

Toast.makeText(getApplicationContext(),tx.getText().toString(), Toast.LENGTH_LONG).show();

它是“bla”但仍然是假的,为什么?

【问题讨论】:

  • 您可以使用 tx.getText().toString().equals("bla") 代替 == 及其工作。

标签: java android android-edittext


【解决方案1】:

你应该使用等于

if(tx.getText().toString().equals("bla"))

equals 比较字符串,但 == 比较对象。

正如@Frank 建议的那样,以避免像这样的 NPE 比较

if("bla".equals(tx.getText().toString()))

【讨论】:

  • 并把“bla”文字放在第一位,避免使用空指针..
  • 非常感谢。对于这个愚蠢的问题,我很抱歉,下次我会尝试更多搜索,我认为这是更复杂的问题。
【解决方案2】:

当您比较两个 String 对象时,您不会比较它们的字面值。您检查它们是否是同一个对象,通常情况并非如此。这就是为什么你想改用mystring.equals("my string litereal")

【讨论】:

    【解决方案3】:

    您还没有使用“==”来测试两个字符串的相等性。使用 String 类的equals 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-28
      • 2019-10-11
      • 2020-10-13
      • 1970-01-01
      • 2011-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多