java - onClick 方法的 View 在转换为 TextView 时返回 null

标签 java android

我试图在单击 TextView 时获取它的整数值。为此,我使用 XML 文件的 onClick 属性。 这是我的 XML 代码:

    <TextView
        android:id="@+id/o1"
        android:layout_width="wrap_content"
        android:onClick="check"
        android:layout_height="wrap_content" />

检查方法如下:

public void check(View v) {

    TextView c= (TextView) v;
    int z = Integer.parseInt(c.getText().toString());
    // more code here

这是堆栈跟踪:

 10-30 20:16:47.952: E/AndroidRuntime(12427): java.lang.IllegalStateException: Could not execute method for android:onClick
10-30 20:16:47.952: E/AndroidRuntime(12427):    at android.view.View$DeclaredOnClickListener.onClick(View.java:4452)
10-30 20:16:47.952: E/AndroidRuntime(12427):    at android.view.View.performClick(View.java:5198)
10-30 20:16:47.952: E/AndroidRuntime(12427):    at android.view.View$PerformClick.run(View.java:21147)
10-30 20:16:47.952: E/AndroidRuntime(12427):    at android.os.Handler.handleCallback(Handler.java:739)
10-30 20:16:47.952: E/AndroidRuntime(12427):    at android.os.Handler.dispatchMessage(Handler.java:95)
10-30 20:16:47.952: E/AndroidRuntime(12427):    at android.os.Looper.loop(Looper.java:148)
10-30 20:16:47.952: E/AndroidRuntime(12427):    at android.app.ActivityThread.main(ActivityThread.java:5417)
10-30 20:16:47.952: E/AndroidRuntime(12427):    at java.lang.reflect.Method.invoke(Native Method)
10-30 20:16:47.952: E/AndroidRuntime(12427):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
10-30 20:16:47.952: E/AndroidRuntime(12427):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
10-30 20:16:47.952: E/AndroidRuntime(12427): Caused by: java.lang.reflect.InvocationTargetException
10-30 20:16:47.952: E/AndroidRuntime(12427):    at java.lang.reflect.Method.invoke(Native Method)
10-30 20:16:47.952: E/AndroidRuntime(12427):    at android.view.View$DeclaredOnClickListener.onClick(View.java:4447)
10-30 20:16:47.952: E/AndroidRuntime(12427):    ... 9 more
10-30 20:16:47.952: E/AndroidRuntime(12427): Caused by: java.lang.NumberFormatException: Invalid int: "518 "
10-30 20:16:47.952: E/AndroidRuntime(12427):    at java.lang.Integer.invalidInt(Integer.java:138)
10-30 20:16:47.952: E/AndroidRuntime(12427):    at java.lang.Integer.parse(Integer.java:410)
10-30 20:16:47.952: E/AndroidRuntime(12427):    at java.lang.Integer.parseInt(Integer.java:367)
10-30 20:16:47.952: E/AndroidRuntime(12427):    at java.lang.Integer.parseInt(Integer.java:334)
10-30 20:16:47.952: E/AndroidRuntime(12427):    at com.project.project.MainActivity.check(MainActivity.java:69)
10-30 20:16:47.952: E/AndroidRuntime(12427):    ... 11 more

任何帮助将不胜感激!

最佳答案

Invalid int: "518 "

包含一个空格。在调用 parseInt()

之前使用 trim()
 int z = Integer.parseInt(c.getText().toString().trim());

关于java - onClick 方法的 View 在转换为 TextView 时返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33438924/

相关文章:

java - [a-z][a-z]* 和 [a-z]+ 正则表达式之间的区别

java - 在 WildFly 18 上使用 Spring Session 和 HazelCast IMDG 进行 session 复制和集群

java - Java 中的图标 - 如何在面板中添加图标

java - Android不创建本地文件

java - 如何下载com.sun.net.httpserver包?

java - 通过网络发送具有自定义属性的文件

android - Eclipse for Android 中的界面生成器 : how to see my activity in fullscreen?

android - 通过拨号启动 Activity

android - 如果参数不为 null,我如何告诉 kotlin 函数不返回 null?

android - 我们可以在 Android 应用程序中使用 Google 支付作为辅助方法吗?