使用Android项目中的EditText.toString()方法返回奇怪的文本。 为什么?
我对EditText对象的理解似乎有一个根本的差距。 我有一个Activity + Layout与一个EditText对象。 在EditText对象中键入几个字符并按Enter键后,我在onKey()侦听器中检索文本。 当我使用toString()方法来检索文本时,我得到一个奇怪的字符串,如:
android.widget.EditText@43749ff0
尽管EditText.mText属性确实显示了我输入的字符串,但在测试期间显示“123”。 为什么toString()返回一个不同的结果,看起来是某种“uninitalize”值? 如何在mText属性中获取当前所需的字符串以及该奇怪的值是什么?
– 罗斯克勒
您正在View对象上调用toString(),它可能没有定义toString()。
我相信你想这样称呼:
editText.getText()。的toString()
通过浏览API建议您应该使用getText()
方法。 toString()
是一个适用于Object
及其所有子类的通用方法(据我所知,它不是一个原始的东西)。 它经常被覆盖以提供更多有用的字符串,但默认情况下,它会报告与您发布的内容类似的内容 – 稀疏描述和对象的哈希码。 为了清楚toString()
, API将toString()
定义为:
getClass().getName() + '@' + Integer.toHexString(hashCode())
你不能在这上面使用’toString’方法,而是使用’getText()。toString()’。
试试EditText.getText().toString()
花一点时间阅读java API: http : //download.oracle.com/javase/6/docs/api/java/lang/Object.html#toString%28%29
的toString
public String toString() Returns a string representation of the object.
通常,toString方法返回一个“文本表示”此对象的字符串。 结果应该是简洁但信息丰富的表示,便于人们阅读。 建议所有子类都覆盖此方法。 类Object的toString方法返回一个字符串,该字符串由对象为实例的类的名称,符号字符“@”以及对象的哈希码的无符号hex表示组成。 换句话说,此方法返回一个等于值的字符串:
getClass().getName() + '@' + Integer.toHexString(hashCode())
返回:对象的字符串表示forms。