使用Android项目中的EditText.toString()方法返回奇怪的文本.为什么?

Rob*_*ler 1 java android tostring android-edittext

我对EditText对象的理解似乎有一个根本的差距.我有一个Activity + Layout与一个EditText对象.在EditText对象中键入几个字符并按Enter键后,我在onKey()侦听器中检索文本.当我使用toString()方法来检索文本时,我得到一个奇怪的字符串,如:

android.widget.EditText@43749ff0

尽管EditText.mText属性确实显示了我输入的字符串,但在测试期间显示"123".为什么toString()返回一个不同的结果,看起来是某种"uninitalize"值?如何在mText属性中获取当前所需的字符串以及该奇怪的值是什么?

- roschler

Dou*_*oug 8

通过浏览API建议您应该使用该getText()方法.toString()是一个适用于Object它的所有子类的通用方法(据我所知,它不是一个原始的东西).它经常被覆盖以提供更多有用的字符串,但默认情况下,它会报告与您发布的内容类似的内容 - 稀疏描述和对象的哈希码.为了清楚起见,API定义toString()为:

getClass().getName() + '@' + Integer.toHexString(hashCode())
Run Code Online (Sandbox Code Playgroud)


Luk*_*uth 6

你不能在这上面使用'toString'方法,而是使用'getText().toString()'.