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
Kotlin 共程内视窗支架?[科特林]_Kotlin_Kotlin Coroutines_Android Viewholder - Fatal编程技术网

Kotlin 共程内视窗支架?[科特林]

Kotlin 共程内视窗支架?[科特林],kotlin,kotlin-coroutines,android-viewholder,Kotlin,Kotlin Coroutines,Android Viewholder,我想知道是否有可能在ViewHolder内部启动corroutine,我的意思是,假设您在OnBindViewHolder中按下一个项,您需要调用API以获得响应。。。我不知道我是否可以在里面使用Coroutines 多谢各位 附言或类似的话 lblDeliveryMethod.setOnClickListener { // API CALL APICALLING() suspend { del

我想知道是否有可能在
ViewHolder
内部启动
corroutine
,我的意思是,假设您在
OnBindViewHolder
中按下一个项,您需要调用
API
以获得响应。。。我不知道我是否可以在里面使用
Coroutines

多谢各位

附言或类似的话

lblDeliveryMethod.setOnClickListener {
           // API CALL
            APICALLING()
            suspend {
                delay(1000)
                withContext(Dispatchers.Main) {
                    if (APIRESPONSES) {
                        // DO SOMETHING
                   
                    }
                }
            }
        }

我可以用这个插件修复它。。。它很有魅力


不要这样做,这显然是错误的。在为其设计的组件(如ViewModel)内执行后台工作,ViewModel的生命周期在配置更改后仍然有效,并且有一个与ViewModel的生命周期相关联的协同作用域

ViewHolder应该为承载RecyclerView的片段/活动提供注册onClickListener的方法,并在单击ViewModel时调用该方法


您可以将lambda作为列表项上的构造函数参数,也可以在列表项上使用setOnClickListener()方法和一个属性来存储它。

很抱歉没有提供代码,因为我没有任何类似的代码,因为我总是使用FastAdapter库来实现它。
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
  holder.itemView.autoDisposeScope.launch {
    ...
  }
}