我对使用Kotlin很陌生,我试图将我的项目从java移植到kotlin。基本上,我有一个帮助程序类,尝试初始化recyclerview布局,适配器等。
在Java中: 适配器
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>
{
...
public static class ViewHolder extends RecyclerView.ViewHolder
{
...
}
...
}
我的助手功能:
public void init(RecyclerView recyclerView, boolean horizontal, boolean divider, RecyclerView.Adapter adapter, Context context)
当我创建适配器并调用该函数时,它工作正常。
但是在科特林: 适配器
class MyAdapter(...) : RecyclerView.Adapter<MyAdapter.ViewHolder>() {
...
inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
...
}
...
}
辅助功能
fun init(recyclerView : RecyclerView, horizontal: Boolean, divider: Boolean, adapter: RecyclerView.Adapter<RecyclerView.ViewHolder>, context: Context) {
...
}
创建适配器并调用函数时
val myAdapter = MyAdapter(...)
helper.init(listView, false, false, myAdapter, this)
我在需要的地方出现了不匹配错误:RecyclerView.Adapter<RecyclerView.ViewHolder>
,发现:MyAdapter
明智的继承,它应该工作正确吗?还是我错过了什么?
谢谢!
答案 0 :(得分:0)
不太正确,您需要的正确声明是:
a.loc[0, 'x'] = b.loc[1,'x']
a = a.set_index(['a','b'])
print(a)
x
a b
1 b 9
2 b 5
3 b 6
,然后您需要实现诸如以下签名的方法:
class MyAdapter() : RecyclerView.Adapter<RecyclerView.ViewHolder>()
等
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder
必须返回ViewHolder或其子类,例如
onCreateViewHolder
其中:-
return ItemViewHolder(view)
,您可以在绑定函数中使用此知识,例如
inner class ItemViewHolder(val mView: View) : RecyclerView.ViewHolder(mView)
{
val mFieldView: TextView = mView.field
...
}
答案 1 :(得分:0)
查看您使用的适配器的类型,有不同类型的适配器,例如阵列适配器,recyclerView适配器。具体来说,在列表视图中,我们使用阵列适配器。与recycler View适配器一起使用时,是recycler view适配器,如果在recycler view中使用阵列适配器,它将显示上述错误。