Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android项目中使用EditText.toString()方法返回奇怪的文本。为什么?_Java_Android_Android Edittext_Tostring - Fatal编程技术网

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

Java 在Android项目中使用EditText.toString()方法返回奇怪的文本。为什么?,java,android,android-edittext,tostring,Java,Android,Android Edittext,Tostring,我对EditText对象的理解似乎存在根本性的差距。我有一个带有单个EditText对象的Activity+布局。在EditText对象中键入几个字符并按下Enter键后,我在onKey()侦听器中检索文本。当我使用toString()方法检索文本时,我得到一个奇怪的字符串,如: android.widget。EditText@43749ff0 尽管EditText.mText属性确实显示了我在测试期间输入的字符串“123”。为什么toString()返回不同的结果,以及什么似乎是某种“非意大利

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

android.widget。EditText@43749ff0

尽管EditText.mText属性确实显示了我在测试期间输入的字符串“123”。为什么toString()返回不同的结果,以及什么似乎是某种“非意大利化”值?如何在mText属性中获取当前所需的字符串,以及该奇怪值是什么


--roschler

尝试
EditText.getText().toString()
尝试
EditText.getText().toString()
您不能在这个问题上使用'toString'-方法,而是使用'getText().toString()'方法。

您不能在这个问题上使用'toString'-方法,而是使用'getText().toString(),它可能没有定义toString()

我相信你想称之为:

editText.getText().toString()

您正在对视图对象调用toString(),该视图对象可能没有定义toString()

我相信你想称之为:


editText.getText().toString()

浏览一下API,建议您使用
getText()
方法
toString()
是一种通用方法,适用于
对象
及其所有子类(即,据我所知,非原语的所有内容)。它通常被重写以提供更有用的字符串,但默认情况下,它报告的内容与您发布的内容类似——稀疏描述和对象的哈希代码。为了清楚起见,将
toString()
定义为:

getClass().getName() + '@' + Integer.toHexString(hashCode())

浏览一下API,建议您使用
getText()
方法
toString()
是一种通用方法,适用于
对象
及其所有子类(即,据我所知,非原语的所有内容)。它通常被重写以提供更有用的字符串,但默认情况下,它报告的内容与您发布的内容类似——稀疏描述和对象的哈希代码。为了清楚起见,将
toString()
定义为:

getClass().getName() + '@' + Integer.toHexString(hashCode())

花点时间阅读java API:

托斯特林

public String toString() Returns a string representation of the object.
通常,toString方法 返回一个字符串,该字符串以文本形式 表示“此对象”。结果 应该是一个简洁但信息丰富的 对于一个客户来说很容易的表示 要阅读的人。建议 所有子类都重写此方法。 类对象的toString方法 返回由 对象所属的类的名称 是一个实例,at符号字符 `@,以及无符号十六进制 的哈希代码的表示形式 对象换句话说,这种方法 返回一个等于该值的字符串 其中:

返回:的字符串表示形式 物体


花点时间阅读java API:

托斯特林

public String toString() Returns a string representation of the object.
通常,toString方法 返回一个字符串,该字符串以文本形式 表示“此对象”。结果 应该是一个简洁但信息丰富的 对于一个客户来说很容易的表示 要阅读的人。建议 所有子类都重写此方法。 类对象的toString方法 返回由 对象所属的类的名称 是一个实例,at符号字符 `@,以及无符号十六进制 的哈希代码的表示形式 对象换句话说,这种方法 返回一个等于该值的字符串 其中:

返回:的字符串表示形式 物体


当toString()方法打印出后跟“@”符号、后跟十六进制字符串的完全限定类名时,它使用的是对象类的默认toString()方法,因此未被重写。当toString()方法打印出后跟“@”符号、后跟十六进制字符串的完全限定类名时,它使用的是Object类的默认toString()方法,因此没有被重写。我发现这对于从Android开始的人来说是一个非常常见的错误,我知道我已经做到了,但这是可以原谅的。查看您引用的文本:
“建议所有子类都重写此方法。”
阅读此文本可以很容易地说服某人,通过假设文本视图重写此方法,他们将获得在文本视图中输入的文本。@Dan Sure,但我发布了这篇文章,所以下次他看到类似于:PACKAGE.CLASS的文本时_NAME@VERY_LONG_HEX_NUMBER他将知道
toString()
没有被覆盖。不幸的是,这对很多类来说都是正确的,而且API文档中并没有那么清楚。我发现这对于从Android开始的人来说是一个难以置信的常见错误,我知道我已经做到了,但这是可以原谅的。查看您引用的文本:
“建议所有子类都重写此方法。”
阅读此文本可以很容易地说服某人,通过假设文本视图重写此方法,他们将获得在文本视图中输入的文本。@Dan Sure,但我发布了这篇文章,所以下次他看到类似于:PACKAGE.CLASS的文本时_NAME@VERY_LONG_HEX_NUMBER他将知道
toString()
没有被覆盖。不幸的是,这对于许多类来说都是正确的,并且从API文档中并不是很清楚。