android - 如何解决 Kotlin 上的 PagerAdapter 问题 : "Required method instantiateItem was not overridden"?

标签 android kotlin android-pageradapter kotlin-android-extensions

所以我的项目正在将 Kotlin 文件调用到 Java :

这是我收到的错误消息(运行时错误):
java.lang.UnsupportedOperationException:未覆盖必需的方法 instantiateItem



这是我的应用程序 gradle

apply plugin: 'kotlin-android'
android {
    compileSdkVersion 26
....
    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }
}

dependencies {
....
    implementation "org.jetbrains.kotlin:kotlin-stdlib"
}

我的项目 gradle 看起来:

buildscript {
    ext.kotlin_version = '1.2.61'
    repositories {
...

}
dependencies {
....
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

    }
}






最后,这是我的 kotlin 代码,

class SwipeAdapter : PagerAdapter {
....
...
    override fun instantiateItem(container: ViewGroup?, position: Int):Any {
      .....
     ....
        return super.instantiateItem(container, position)
    }

    .....
}

(我尝试将其更改为 java.lang.Object 但当然遇到了编译错误, 对于 Kotlin 来说它必须是 Any 类型)

调用java文件:

PagerAdapter sa= new SwipeAdapter(someArgs);

最佳答案

您收到异常是因为您仍然将工作委托(delegate)给 super 调用,然后该调用会调用此实现:

@Deprecated
@NonNull
public Object instantiateItem(@NonNull View container, int position) {
    throw new UnsupportedOperationException(
            "Required method instantiateItem was not overridden");
}

您应该返回一个您创建的代表给定位置页面的对象,而不是调用 super 方法。这通常是 View 本身,请参阅 this questionthis tutorial对于 PagerAdapter 示例。

关于android - 如何解决 Kotlin 上的 PagerAdapter 问题 : "Required method instantiateItem was not overridden"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52045177/

相关文章:

android - 2d 手机游戏

android - 如何使布局可以水平和垂直滚动?

java - RxJava : onBackpressureBlock() strange behavior

java - Home.ImagePagerAdapter 类型未定义方法 setOnPageChangeListener(ViewPager.SimpleOnPageChangeListener)

android - ViewPager 在屏幕旋转后重新实例化无序的项目

android - 如何将 ArrayList< com.google.api.services.drive.model.File> 传递给 Activity

android - 为什么列表中的值被新值覆盖?

Kotlin 只读属性,带和不带 getter

android - 如何在 mvvm 模式中登录成功时从 viewmodel 启动 Activity

android - 在 viewpager 示例中停止预加载页面