android - 使用 Kotlin 在 onCreateLoader 中类型不匹配

标签 android kotlin android-cursorloader

我正在将 Android 应用程序从 Java 移植到 Kotlin。我有一个游标加载器来填充 RecyclerView,在 Java 中一切都很好,但是当我尝试将代码从 Java“翻译”到 Kotlin 时,我收到了来自 Android Studio 的消息,您可以在下图中看到。

我的java代码是:

@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args){
    return new CursorLoader(getContext(), Contrato.URI_CONTENIDO_BASE, null,null,null,null);
}

@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data){

    adaptador.swapCursor(data);

    layoutManager.scrollToPosition(adaptador.getItemCount() -1);

}

@Override
public void onLoaderReset(Loader<Cursor> loader){

}

Kotlin 中的代码是:

override fun onCreateLoader(id: Int, args: Bundle?): Loader<Cursor> {
    return CursorLoader(context,MMDContract.columnas.CONTENT_BASE_URI, null, null, null, null)
}

override fun onLoadFinished(loader: Loader<Cursor>?, data: Cursor?) {
  adapter.swapCursor(data)
}

override fun onLoaderReset(loader: Loader<Cursor>?) {
    TODO("not implemented") //To change body of created functions use File | Settings | File Templates.

}

onCreateLoader in Kotlin

我还没有找到 Kotlin 的官方文档,只有 Java 的。 https://developer.android.com/guide/components/loaders

知道如何解决这个问题吗?

最佳答案

改变

return CursorLoader(context,
  MMDContract.columnas.CONTENT_BASE_URI, null, null, null, null)

进入

return CursorLoader(context,
  MMDContract.columnas.CONTENT_BASE_URI, null, null, null, null) as Loader<Cursor>

应该可以解决这个问题。

这个错误看起来像一个 IDE 错误。如果您总是看到相同的错误消息,您可以在 https://youtrack.jetbrains.com/ 上报告它.

关于android - 使用 Kotlin 在 onCreateLoader 中类型不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50126804/

相关文章:

android - 按住按钮时如何获得按钮按下时间

android - Android 网络浏览器分辨率有什么问题?

android - 如何确定当前可视区域中是否显示地理点?

kotlin - Kotlin标准函数,如果为null则创建并返回所有结果

kotlin - 在类中测试 Kotlin 扩展

android - Android SimpleCursorAdapter 和 CursorLoader 的使用

Android 在 UI 线程上使用光标

android - 删除自动完成 Textview 数据

sql - JOOQ-选择不同的加入-提取映射器

android - 在 ListView 中显示之前合并游标中的数据