java - 如何修复 OnClickListener 为空对象引用
问题描述
我得到这个:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.haolunsleepmanager, PID: 4007
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.haolunsleepmanager/com.example.haolunsleepmanager.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3449)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at com.example.haolunsleepmanager.MainActivity.onCreate(MainActivity.java:37)
at android.app.Activity.performCreate(Activity.java:8000)
at android.app.Activity.performCreate(Activity.java:7984)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
我已经查看了由此引起的错误。这是有错误的行:
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Toast.makeText(getApplicationContext(),
"Button is clicked", Toast.LENGTH_LONG).show();
}
});
请,如果有人可以提供帮助。出了什么问题,我该如何解决?
解决方案
您的button
对象可能是null
. 确保
Button button = (Button) findViewById(my_button_id);
在您的代码中包含,并确保您获得了有效的 ID。但是,在您分享其余代码之前,我不确定。
推荐阅读
- python - Numpy - 在每行 og ma 中更改第一个非 nan 值
- flask - flask-sqlalchemy 读/写端点
- amazon-web-services - How can I create a VPC for EBS and RDS?
- or-tools - RoutingSearchParameters 的默认实例不起作用
- ios - 比较 Swift 中的数组内容
- c# - Unity:如何将功能转移到更小、更集中的类中
- string - 将列表模型中的所有值组合成一个字符串
- c# - WCF Web 服务未部署在 localhost ... web.config ... 端点上
- powershell - Powershell try/catch validate all test,如果其中一项测试验证失败,则退出循环并显示错误?
- python - Flask 应用无权写入 ubuntu 上的数据