与新的类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需要一些方法来知道recyclerViewContext (或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() } } 

然后在您的MainActivityonCreate() ,您可以执行以下操作

 var newClass: NewClass = NewClass(rowsListRv, this) 

希望这可以帮助!