查看寻呼机 getCurrentItem 时出现 NullPointerException

问题描述 投票:0回答:1

我在我的应用程序中使用 viewpager 作为轮播。当应用程序第一次打开时它工作正常,但是当从另一个片段返回时,我收到一个错误,如 NullPointerException,我尝试了不同的方法,但没有任何效果。下面是我的代码和来自 firebase 的错误日志。

   private fun initCarousal() {
        carousal.adapter = TransactCarousalAdapter {
            when (it) {
                0 -> {
                    Case1()
                }
                1 -> {
                    Case2()
                }
                2 -> {
                    case3()
              

            }
        }
        dots_indicator.setViewPager(carousal)

        val handler = Handler()

        val update = Runnable {
            var currentPage = carousal.currentItem // Here am getting error LINE NO. : 87
            if (currentPage == 1) {
                currentPage = 0
            } else {
                currentPage++
            }
            carousal.setCurrentItem(currentPage, true)
        }


        timer.schedule(object : TimerTask() {
            override fun run() {
                handler.post(update)
            }
        }, 7000, 7000)
    }


    override fun onResume() {
        super.onResume()
        timer = Timer()
        initCarousal()
    }
    override fun onStop() {
        super.onStop()
        timer.cancel()
    }

错误日志

java.lang.NullPointerException: Attempt to invoke virtual method 'int androidx.viewpager.widget.ViewPager.getCurrentItem()' on a null object reference
    com.bslamc.fingo.ui.dashboard.transact.TransactFragment.initCarousal$lambda-0(TransactFragment.kt:87)
    android.os.Handler.handleCallback(Handler.java:938)
    android.os.Handler.dispatchMessage(Handler.java:99)
    android.os.Looper.loop(Looper.java:255)
    android.app.ActivityThread.main(ActivityThread.java:8212)
    java.lang.reflect.Method.invoke(Method.java:0)
    com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:632)
    com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049)
android kotlin android-viewpager handler runnable
1个回答
0
投票

carousal
为空 - 看起来它没有在任何地方初始化。

您是否有这样一行可以添加来初始化它:

       carousal = findViewById(R.id.carousal)
© www.soinside.com 2019 - 2024. All rights reserved.