与新的类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 

One Solution collect form web for “与新的类Kotlin recyclerView”

问题是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) 

希望这可以帮助!

  • Android Kotlin - 如何使java builder setter方法
  • Gradle构建中未解决的Kotlin扩展函数的引用
  • 丢弃返回值以返回单位?
  • Java / Kotlingenerics
  • 错误或特征:Kotlin允许在inheritance中将“val”更改为“var”
  • 是否有一个相当于Swift init Kotlin(重复:计数:)
  • 当我点击EditText时如何禁用键盘?
  • 错误:包含非法的最终字段-Kotlin
  • Kotlin方法通用typesvalidation
  • IllegalArgumentException:savedInstanceState指定为非空为空
  • Gradle项目:java.lang.NoClassDefFoundError:kotlin / jvm / internal / Intrinsics
  • Kotlin language will be the best programming language for Android.