getText()。equals()的变化?

时间:2014-07-08 13:48:41

标签: android android-4.4-kitkat

一周前,我使用了这行代码:

buttonAction.setText("Retry");
buttonAction.getText().equals("Retry") -> true

今天,当我重新编译我的项目时(在SDK + android studio更新之后),我得到:

buttonAction.setText("Retry");                             //called in BroadcastReceiver
buttonAction.getText().equals("Retry") -> false            //called in onClick
buttonAction.getText().toString().equals("Retry") -> true  //called in onClick

因为getText()返回String,这两个函数应该返回相同的,或者我错了?

修改

如果我在onCreate方法中调用以下行,

    buttonAction.setText("Retry");
    System.out.println(buttonAction.getText().equals("Retry"));
    System.out.println(buttonAction.getText().getClass().toString());
    System.out.println(buttonAction.getText().toString().equals("Retry"));

他们打印:

    07-08 17:13:12.898  10343-10343/at.test I/System.out﹕ true
    07-08 17:13:12.898  10343-10343/at.test I/System.out﹕ class java.lang.String
    07-08 17:13:12.898  10343-10343/at.test I/System.out﹕ true

如果我在onClick_ButtonAction中调用这些行,则会打印出来:

    07-08 17:18:34.913  10480-10480/at.test I/System.out﹕ false
    07-08 17:18:34.913  10480-10480/at.test I/System.out﹕ class android.text.SpannableString
    07-08 17:18:34.913  10480-10480/at.test I/System.out﹕ true

提前致谢!

1 个答案:

答案 0 :(得分:0)

根据http://developer.android.com/reference/android/widget/EditText.html,getText()返回一个可编辑的类型。这就是为什么它返回false并且你必须将它转换为String才能使它成为真。