Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.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 显示带有recyclerview和改装的图像_Android_Kotlin - Fatal编程技术网

Android 显示带有recyclerview和改装的图像

Android 显示带有recyclerview和改装的图像,android,kotlin,Android,Kotlin,我的应用程序中有一个问题,我需要用recyclerview显示一个图像,但我得到了一个空对象 class AllSubscribersAdapter(val context: Context, private val subsribedChannels: SubscribedChannels): RecyclerView.Adapter<AllSubscribersAdapter.ViewHolder>() { private var channels: List<C

我的应用程序中有一个问题,我需要用recyclerview显示一个图像,但我得到了一个空对象

class AllSubscribersAdapter(val context: Context, private val subsribedChannels: SubscribedChannels): RecyclerView.Adapter<AllSubscribersAdapter.ViewHolder>() {

    private var channels: List<Channels> = listOf()
    init {
        channels = subsribedChannels.channels
    }

    override fun onCreateViewHolder(parent: ViewGroup, position: Int): ViewHolder {
        val view = LayoutInflater.from(parent.context).inflate(R.layout.subscribers_item, parent, false)
        return ViewHolder(view)
    }

    override fun getItemCount(): Int {
        return channels.size
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {

        holder.tvChannelName.text = channels[position].name

        Glide.with(holder.channel_img)
            .load(channels[position].avatar)
            .transform(CircleCrop())
            .into(holder.channel_img)

        /*Picasso.get()
            .load(channels[position].avatar)
            .fit()
            .into(holder.channel_img)*/

    }

    fun setChannelsList(channels: List<Channels>){
        this.channels = channels
        notifyDataSetChanged()
    }

    class ViewHolder(itemView: View?) : RecyclerView.ViewHolder(itemView!!) {

        var tvChannelName: TextView = itemView!!.findViewById(R.id.channel_name)
        var channel_img: ImageView = itemView!!.findViewById(R.id.channel_image)
    }

}
class AllSubscriberAdapter(val context:context,private val SubscribedChannels:SubscribedChannels):RecyclerView.Adapter(){
私有变量通道:List=listOf()
初始化{
频道=子订阅频道。频道
}
override onCreateViewHolder(父级:ViewGroup,位置:Int):ViewHolder{
val view=LayoutInflater.from(parent.context).充气(R.layout.subscribers\u项,parent,false)
返回视图保持器(视图)
}
重写getItemCount():Int{
返回通道大小
}
覆盖BindViewHolder(holder:ViewHolder,位置:Int){
holder.tvChannelName.text=频道[位置].name
滑动(保持架通道\u img)
.load(频道[位置].avatar)
.transform(CircleCrop())
.插入(支架通道\u img)
/*毕加索
.load(频道[位置].avatar)
.fit()
.插入(支架通道\u img)*/
}
趣味设置频道列表(频道:列表){
this.channels=频道
notifyDataSetChanged()
}
类视图持有者(itemView:View?):RecyclerView.ViewHolder(itemView!!){
var tvChannelName:TextView=itemView!!.findviewbyd(R.id.channel\u name)
var channel\u img:ImageView=itemView!!.findviewbyd(R.id.channel\u image)
}
}
频道名称正在工作,但频道图像为空,欢迎提供任何帮助。这是我的模型课

class SubscribedChannels (
    var channels: List<Channels>
): Serializable

data class Channels(
    var id: String,
    var name: String,
    var slug: String,
    var avatar: String,
    var created_by: String,
    var subscribers: String
): Serializable
类订阅频道(
变量通道:列表
):可序列化
数据类通道(
变量id:String,
变量名称:String,
变量slug:String,
var阿凡达:字符串,
变量创建人:String,
变量订阅者:字符串
):可序列化

我不知道这里是否有问题。

首先,您不能在
ViewHolder
类中初始化
变量。
您应该在构造函数中这样做

 var tvChannelName: TextView?=null
 var channel_img: ImageView?=null
 init{
       tvChannelName = itemView!!.findViewById(R.id.channel_name)
      channel_img = itemView!!.findViewById(R.id.channel_image)
     }

如果您在改装响应中得到空字符串,那么您必须检查字符串,然后您必须调用底部holder.tvChannelName.text处的
glide

,您可以记录香奈儿。如果Avatar不为空,您可以检查值是否具有有效的图像url

请发布改装响应并发布logcatpost什么是频道的类型和值[position]。如果该值为空,则您的问题不在于适配器,而在于Reformation.share R.layout.subscribers\u项目xml代码(如果您正在获取频道\u图像)(ImageView)FindView中的null是否回答了您的问题?是否回答了您的问题?