Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 科特林的SectionedRecyclServiceAdapter_Android_Kotlin_Android Recyclerview - Fatal编程技术网

Android 科特林的SectionedRecyclServiceAdapter

Android 科特林的SectionedRecyclServiceAdapter,android,kotlin,android-recyclerview,Android,Kotlin,Android Recyclerview,任何人都可以将java代码重构为kotlin代码 这是我的密码 FoodListAdapter.kt class FoodListAdapter: StatelessSection(SectionParameters.builder() .itemResourceId(R.layout.content_food_list) .headerResourceId(R.layout.header_food_list) .build()) { val itemList

任何人都可以将java代码重构为kotlin代码

这是我的密码

FoodListAdapter.kt

class FoodListAdapter: StatelessSection(SectionParameters.builder()
    .itemResourceId(R.layout.content_food_list)
    .headerResourceId(R.layout.header_food_list)
    .build()) {

    val itemList = arrayListOf<Int>(1, 2, 3 ,4)

    override fun getContentItemsTotal(): Int {
        return itemList.size
    }

    override fun onBindItemViewHolder(holder: RecyclerView.ViewHolder?, position: Int) {
        val itemHolder = holder as MyItemViewHolder

        // bind your view here
        itemHolder.tvItem.setText(itemList[position])
    }

    override fun getItemViewHolder(view: View?): RecyclerView.ViewHolder {
        return MyItemViewHolder(view!!)
    }
}

class MyItemViewHolder(itemView: View): RecyclerView.ViewHolder(itemView) {
    lateinit var tvItem: TextView
    init {
        tvItem = itemView.findViewById(R.id.txtItem) as TextView
    }
}
我有个问题是 无法将“RecyclerView.adapter”类型的表达式“adapter”作为函数调用。找不到函数“invoke()” 回收后查看适配器(节适配器) 有人请指导我修复这个。
抱歉,我英语不好

您正在尝试将类属性作为函数访问

在Java中,您可以将适配器设置为:

recyclerView.setAdapter(sectionAdapter)
在科特林,这看起来像:

recyclerView.adapter = sectionAdapter
查看更多信息

class FoodListAdapter(val itemList): StatelessSection(SectionParameters.builder()
    .itemResourceId(R.layout.content_food_list)
    .headerResourceId(R.layout.header_food_list)
    .build()) {

    override fun getContentItemsTotal(): Int {
        return itemList.size
    }

    override fun onBindItemViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
        val itemHolder = holder as MyItemViewHolder
        itemHolder.tvItem.setText(itemList[position])
    }

    override fun getItemViewHolder(view: View?): RecyclerView.ViewHolder {
        return MyItemViewHolder(view!!)
    }
}

class MyItemViewHolder(itemView: View): RecyclerView.ViewHolder(itemView) {
    internal val tvItem: TextView =itemView.findViewById(R.id.txtItem)
}
对于您的活动,您不需要上下文变量activity extends context

class FoodActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_food_list)

    val sectionAdapter = SectionedRecyclerViewAdapter()

        val itemList = arrayListOf<Int>(1, 2, 3 ,4)
        sectionAdapter.addSection(FoodListAdapter(itemList))

        val recyclerView:RecyclerView = findViewById(R.id.foodList)
        recyclerView.layoutManager = LinearLayoutManager(context)
        recyclerView.adapter = sectionAdapter
    }
}
class FoodActivity:AppCompatActivity(){
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity\u food\u list)
val sectionAdapter=sectionedRecyclServiceAdapter()
val itemList=arrayListOf(1,2,3,4)
sectionAdapter.addSection(FoodListAdapter(itemList))
val recyclerView:recyclerView=findviewbyd(R.id.foodList)
recyclerView.layoutManager=LinearLayoutManager(上下文)
recyclerView.adapter=节适配器
}
}
正如@CampbellMG提到的,您需要使用
recyclerView.adapter=sectionAdapter
recyclerView.setAdapter(sectionAdapter)

recyclerView.adapter=sectionAdapter
更为惯用

class FoodActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_food_list)

    val sectionAdapter = SectionedRecyclerViewAdapter()

        val itemList = arrayListOf<Int>(1, 2, 3 ,4)
        sectionAdapter.addSection(FoodListAdapter(itemList))

        val recyclerView:RecyclerView = findViewById(R.id.foodList)
        recyclerView.layoutManager = LinearLayoutManager(context)
        recyclerView.adapter = sectionAdapter
    }
}