比较文本总是不正确

时间:2014-06-05 00:44:25

标签: android

我很困惑,为什么即使两个视图返回相同的文本,下面的代码总是会出现错误的toast。

 @Override
     public void onClick(View view) {
         int intID = view.getId();
         Button button = (Button) findViewById(intID);
         CharSequence message = button.getText().toString();
         Log.i(LOGTAG, (String) message);
         TextView textview = (TextView) findViewById(R.id.correct);
         CharSequence answer = textview.getText().toString();
         Log.i(LOGTAG, (String) answer);
         if (message == answer) {
                Toast.makeText(getApplicationContext(), "Correct", Toast.LENGTH_LONG).show();
            } else if (message != answer);{
                Toast.makeText(getApplicationContext(), "Incorrect", Toast.LENGTH_LONG).show();
            }

     }

日志

06-04 18:56:25.752: I/APP(1972): Germany
06-04 18:56:25.752: I/APP(1972): Germany

按钮当然是一个按钮,textview是一个不可见的textview。从LOGCAT中可以看到" message"并且"回答"给出相同的文字然而答案是" if message == answer"永远是不正确的。有谁为什么以及如何解决这个问题。 亲切的问候,德里克

2 个答案:

答案 0 :(得分:0)

使用message.equals(answer)。在Java中String被视为对象,因此==比较引用,而不是实际的字符串内容。

答案 1 :(得分:0)

在Java中==比较引用而不是字符串的内容。使用message.equals(answer)进行内容比较。