与新的类Kotlin recyclerView
在mainActivity上用Kotlin创建了一个recyclerView。
它工作得很好。
我想现在将我的代码转移到一个新的类从MainActivity调用该类,并以这种方式激活recyclerView。
在mainActivity中调用该类,但是显然这还不够…
var newClass: NewClass = NewClass()
如何使用recyclerView
调用类或如何激活它?
添加了newClass的调用。 想要删除所有这些行。
谢谢
这是我在onCreate上的代码:
enter code here var newClass: NewClass = NewClass() rowsList = ArrayList() layoutManager = LinearLayoutManager(this) adapter = RowListAdapter(rowsList!!, this) rowsListRv.layoutManager = layoutManager rowsListRv.adapter = adapter //load data var model = TableViewModel() var dataFromModel: ArrayList = 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() val layoutManager = LinearLayoutManager(context) val adapter = RowListAdapter(rowsList, context) // load data var model = TableViewModel() var dataFromModel: ArrayList = 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)
希望这可以帮助!