我对EditText对象的理解似乎有一个基本的差距。我有一个Activity + Layout与一个EditText对象。在EditText对象中键入几个字符并按Enter键后,我在onKey()侦听器中检索文本。当我使用toString()方法来检索文本时,我得到了一个奇怪的字符串,如:
android.widget.EditText@43749ff0
尽管EditText.mText属性确实显示了我输入的字符串,但在测试期间显示“123”。为什么toString()返回一个不同的结果,看起来是某种“uninitalize”值?如何在mText属性中获取当前所需的字符串以及该奇怪的值是什么?
- roschler
答案 0 :(得分:8)
通过浏览API建议您使用getText()
方法。 toString()
是一种适用于Object
及其所有子类的通用方法(据我所知,它不是原始的所有内容)。它经常被覆盖以提供更多有用的字符串,但默认情况下,它会报告与您发布的内容类似的内容 - 稀疏描述和对象的哈希码。为清楚起见,API将toString()
定义为:
getClass().getName() + '@' + Integer.toHexString(hashCode())
答案 1 :(得分:6)
你不能在此使用'toString'方法,而是使用'getText()。toString()'。
答案 2 :(得分:3)
尝试EditText.getText().toString()
答案 3 :(得分:3)
您正在View对象上调用toString(),它可能没有定义toString()。
我相信你想称之为:
editText.getText()。的toString()
答案 4 :(得分:2)
花点时间阅读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方法 返回由。组成的字符串 对象的类的名称 是一个实例,即符号字符 `@',和无符号的十六进制 表示哈希码的 宾语。换句话说,这种方法 返回一个等于该值的字符串 的:
getClass().getName() + '@' + Integer.toHexString(hashCode())
返回:表示的字符串 对象。