使用 Kotlin 在 onCreateLoader 中类型不匹配
Type mismatch in onCreateLoader using Kotlin
我正在将 Android 应用程序从 java 移植到 Kotlin。我有一个游标加载器来填充 RecyclerView,在 Java 中一切都很好,但是当我尝试 "translate" 从 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.
}
我没有在 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 应用程序从 java 移植到 Kotlin。我有一个游标加载器来填充 RecyclerView,在 Java 中一切都很好,但是当我尝试 "translate" 从 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.
}
我没有在 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/.
上报告它