java - 我正在从 onClickListener 中删除一个方法并单独调用它,然后它导致了问题

标签 java android

我有一个 Android 应用程序,我在其中单击一个按钮以获取当前位置。但是,该按钮正在调用一种方法来解决问题。所以现在我想从那个 onClickListener 方法中删除该方法,并在项目开始时单独调用它。我在onClickListener下的代码

binding.buttonConfirmPickup.setOnClickListener(view -> onButtonConfirmPickupClicked());

但每当我注释掉这行代码并调用 onButtonConfirmPickupClicked() 方法时,它就会抛出 nullpointerexception。

这是我的 Logcat。

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mostain.taxi.rider/com.mostain.taxi.rider.activities.main.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.android.gms.maps.model.CameraPosition com.google.android.gms.maps.GoogleMap.getCameraPosition()' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2895)
        at android.app.ActivityThread.-wrap11(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1616)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:176)
        at android.app.ActivityThread.main(ActivityThread.java:6651)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:824)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.android.gms.maps.model.CameraPosition com.google.android.gms.maps.GoogleMap.getCameraPosition()' on a null object reference
        at com.mostain.taxi.rider.activities.main.MainActivity.onButtonConfirmPickupClicked(MainActivity.java:472)
        at com.mostain.taxi.rider.activities.main.MainActivity.onCreate(MainActivity.java:212)
        at android.app.Activity.performCreate(Activity.java:7088)
        at android.app.Activity.performCreate(Activity.java:7079)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215)

那么为什么它在 onClick 方法下有效,但在它之外却不起作用?

最佳答案

OnMapReady(GoogleMap googleMap) OnMapReadyCallback 接口(interface)的方法为您提供 GoogleMap 对象。使用此对象初始化您的 map 对象,然后尝试调用 onButtonConfirmPickupClicked()。

关于java - 我正在从 onClickListener 中删除一个方法并单独调用它,然后它导致了问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59541507/

相关文章:

android - 如何在锁屏中设置全屏专辑封面?

android - 如何在 Android 模拟器设备上访问数据库

java : Different ways for constructing an ArrayList

Java SimpleHTTPServer 相当于 "python -m SimpleHTTPServer"

java - Android 使用 UrlConnection 从数据库中删除行

android - 权限拒绝 : writing to settings requires android. permission.WRITE_SETTINGS

java - 为什么 java.io.FileSystem 是包私有(private)的?

java - 使用 txt 输入文件和扫描仪处理空行

java - 尽管使用 @NonNull 进行注释,但 Room 上使用 @NonNull 作为主键时仍出现 Android 应用程序错误

java - twitter 应用程序仅认证 java android 与 twitter4j