gpt4 book ai didi

android - OnLongClickListener 导致运行时错误

转载 作者:行者123 更新时间:2023-11-30 04:01:27 25 4
gpt4 key购买 nike

我一直在尝试在我的 Android 应用程序中使用 OnLongClickListener。我正在尝试使用 OnLongClickListener 在用户按下按钮时增加一个数字。我已经采用了在我的应用程序的其他地方工作的 OnClickListener 代码,只是更新了它 OnLongClickListener 但是当我尝试运行我的应用程序时发生运行时错误。这是我的代码:

public void onCreate(Bundle savedInstanceState)                                     //performed when application is first run        
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //link to activity_main.xml
calculateElapsedTime();
Button myButton = (Button)findViewById(R.id.delayUp);
myButton.setOnLongClickListener(new View.OnLongClickListener() {
public boolean onLongClick(View v){
System.out.println("Hello World");
return true;
}
});
}

谁能提供一些关于此代码为何不起作用的见解。请注意,我在代码中使用“Hello World”只是为了测试目的,但是因为当应用程序加载时出现运行时错误,显然这行代码从未被处理。

这是来自 LogCat 的错误:

09-16 17:22:34.982: D/dalvikvm(275): GC_EXTERNAL_ALLOC freed 750 objects / 55632 bytes in 179ms
09-16 17:22:35.113: D/AndroidRuntime(275): Shutting down VM
09-16 17:22:35.124: W/dalvikvm(275): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
09-16 17:22:35.203: E/AndroidRuntime(275): FATAL EXCEPTION: main
09-16 17:22:35.203: E/AndroidRuntime(275): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.morinnic.intervaltimer/com.morinnic.intervaltimer.MainActivity}: java.lang.ClassCastException: android.widget.ImageButton
09-16 17:22:35.203: E/AndroidRuntime(275): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
09-16 17:22:35.203: E/AndroidRuntime(275): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
09-16 17:22:35.203: E/AndroidRuntime(275): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
09-16 17:22:35.203: E/AndroidRuntime(275): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
09-16 17:22:35.203: E/AndroidRuntime(275): at android.os.Handler.dispatchMessage(Handler.java:99)
09-16 17:22:35.203: E/AndroidRuntime(275): at android.os.Looper.loop(Looper.java:123)
09-16 17:22:35.203: E/AndroidRuntime(275): at android.app.ActivityThread.main(ActivityThread.java:4627)
09-16 17:22:35.203: E/AndroidRuntime(275): at java.lang.reflect.Method.invokeNative(Native Method)
09-16 17:22:35.203: E/AndroidRuntime(275): at java.lang.reflect.Method.invoke(Method.java:521)
09-16 17:22:35.203: E/AndroidRuntime(275): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
09-16 17:22:35.203: E/AndroidRuntime(275): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
09-16 17:22:35.203: E/AndroidRuntime(275): at dalvik.system.NativeStart.main(Native Method)
09-16 17:22:35.203: E/AndroidRuntime(275): Caused by: java.lang.ClassCastException: android.widget.ImageButton
09-16 17:22:35.203: E/AndroidRuntime(275): at com.morinnic.intervaltimer.MainActivity.onCreate(MainActivity.java:32)
09-16 17:22:35.203: E/AndroidRuntime(275): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
09-16 17:22:35.203: E/AndroidRuntime(275): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
09-16 17:22:35.203: E/AndroidRuntime(275): ... 11 more

如有任何帮助,我们将不胜感激。谢谢。

最佳答案

根据你给出的信息,明显的可能性是:myButton可能为null(会抛出NullPointerException),即id对应的元素在view上(还)不存在,或者不属于Button 类型(将抛出 ClassCastException)。

确保在上面的代码之前对 Activity 调用setContentView,并确保它确实是一个按钮。

您手机的输出示例会更有帮助。了解如何使用 adb logcat 命令,它将显示您收到的确切异常。

关于android - OnLongClickListener 导致运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12448716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com