-23

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

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

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

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

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

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

4

3 回答 3

4

你应该使用等于

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

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

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

if("bla".equals(tx.getText().toString()))
于 2013-03-24T18:36:20.403 回答
1

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

于 2013-03-24T18:38:58.827 回答
1

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

于 2013-03-24T18:37:50.617 回答