-23

editText のテキストが文字列と等しいかどうかを確認しようとしています。これは私の場合です(ボタンを押すたびに表示されます):

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

これはtxです: tx=(EditText)findViewById(R.id.editText1);

理由はわかりませんが、if は決して真ではありません。次のようにトーストで確認しようとしました。

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

それは「bla」ですが、それでも偽です。なぜですか?

4

3 に答える 3

4

等号を使用する必要があります

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

equals は文字列を比較しますが、== はオブジェクトを比較します。

@FrankNPE を回避するために提案されているように、このように比較します

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

2 つの文字列が等しいかどうかをテストするために "==" を使用していません。Stringequalsクラスのメソッドを使用してください。

于 2013-03-24T18:37:50.617 に答える
1

2 つのStringオブジェクトを比較する場合、それらのリテラル値は比較しません。それらが同じオブジェクトであるかどうかを確認しますが、通常はそうではありません。そのため、mystring.equals("my string litereal")代わりに使用する必要があります。

于 2013-03-24T18:38:58.827 に答える