[英]recyclerView with Kotlin in new class
在mainActivity上使用Kotlin创建了一个recyclerView。
它工作正常。
我现在想将代码转移到新类中,从MainActivity调用该类并以这种方式激活recyclerView。
在mainActivity上调用了该类,但是显然这还不够……
var newClass: NewClass = NewClass()
如何使用recyclerView
调用类或如何激活它?
添加了对newClass的调用。 想要删除所有这些行。
谢谢
这是我在onCreate上的代码:
enter code here
var newClass: NewClass = NewClass()
rowsList = ArrayList<RowFromModel>()
layoutManager = LinearLayoutManager(this)
adapter = RowListAdapter(rowsList!!, this)
rowsListRv.layoutManager = layoutManager
rowsListRv.adapter = adapter
//load data
var model = TableViewModel()
var dataFromModel: ArrayList<String> = model.getData()
for (i in 0..dataFromModel.size - 1) {
val rowFromModel = RowFromModel()
rowFromModel.row = dataFromModel.get(i)
rowsList!!.add(rowFromModel)
}
adapter!!.notifyDataSetChanged()
enter code here
问题在于, NewClass
需要某种方式来了解recyclerView
和Context
(或Activity)才能进行工作,因此应将它们传递给类。 您可以执行以下操作
class NewClass (val recyclerView: RecyclerView, val context: Context) {
val rowsList = ArrayList<RowFromModel>()
val layoutManager = LinearLayoutManager(context)
val adapter = RowListAdapter(rowsList, context)
// load data
var model = TableViewModel()
var dataFromModel: ArrayList<String> = model.data
val rowFromModel = RowFromModel()
init {
// this will be called after the constructor is called
recyclerView.layoutManager = layoutManager
recyclerView.adapter = adapter
for (i in 0..dataFromModel.size - 1) {
val rowFromModel = RowFromModel()
rowFromModel.row = dataFromModel[i]
rowsList.add(rowFromModel)
}
adapter.notifyDataSetChanged()
}
}
然后在MainActivity
的onCreate()
,可以执行以下操作
var newClass: NewClass = NewClass(rowsListRv, this)
希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.