Kotlin 从适配器接收数据到DetailsActivity?

Kotlin 从适配器接收数据到DetailsActivity?,kotlin,android-recyclerview,adapter,Kotlin,Android Recyclerview,Adapter,我想知道如何将数据从适配器(recyclerview)接收到DetailsActivity。我尝试了很多次,但是recyclerview的图像没有显示详细的活动。 这是我的密码 ImageAdapter class ImageAdapter (private var items:List<Item>, private val context:Context): RecyclerView.Adapter<ImageAdapter.ViewHolder>() { o

我想知道如何将数据从适配器(recyclerview)接收到DetailsActivity。我尝试了很多次,但是recyclerview的图像没有显示详细的活动。 这是我的密码

ImageAdapter

class ImageAdapter (private var items:List<Item>, private val context:Context):
    RecyclerView.Adapter<ImageAdapter.ViewHolder>() {

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int):ViewHolder {
   return ViewHolder(
       LayoutInflater.from(context).inflate(R.layout.item, parent, false)
   )
}

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

override fun onBindViewHolder(holder: ImageAdapter.ViewHolder, position: Int) {
    val item = items[position]
    Picasso.get().load(item.imageUrl).into(holder.imageView)

    holder.imageView.setOnClickListener {

        val intent = Intent(context, DetailsActivity::class.java)
        intent.putExtra("iImages", item.imageUrl)
        context.startActivity(intent)

    }
}

class ViewHolder(view:View):RecyclerView.ViewHolder(view) {
    val imageView : ImageView = view.findViewById(R.id.imageView)

}
}

回收活动

class DetailsActivity : AppCompatActivity() {

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


    val aImageView = intent.getIntExtra("iImages", 0)
    details_image.setImageResource(aImageView)
}
class RecyclerActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_recycler)

    val storage = FirebaseStorage.getInstance()
    val storageRef = storage.reference.child("wallpapers")
    val imageList : ArrayList<Item> = ArrayList()
    //progressBar.visibility = View.VISIBLE

    val listAllTask : Task<ListResult> = storageRef.listAll()
    listAllTask.addOnCompleteListener { result ->
        val items: List<StorageReference> = result.result!!.items

        //add cycle for add image url to list
        items.forEachIndexed { index,item ->
            item.downloadUrl.addOnSuccessListener {
                Log.d("item", "$it")
                imageList.add(Item(it.toString()))
            }.addOnCompleteListener {
                recyclerview.adapter = ImageAdapter(imageList, this)
                recyclerview.layoutManager = LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)
                //progressBar.visibility = View.GONE
            }
        }
    }

}
class RecyclerActivity:AppCompatActivity(){
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity\u recycler)
val storage=FirebaseStorage.getInstance()
val storageRef=storage.reference.child(“壁纸”)
val imageList:ArrayList=ArrayList()
//progressBar.visibility=View.VISIBLE
val listAllTask:Task=storageRef.listAll()
listAllTask.addOnCompleteListener{result->
val items:List=result.result!!.items
//将图像url添加到列表的添加周期
items.forachined{索引,项->
item.downloadUrl.addOnSuccessListener{
Log.d(“项目“,“$it”)
添加(项(it.toString()))
}.addOnCompleteListener{
recyclerview.adapter=ImageAdapter(imageList,this)
recyclerview.layoutManager=LinearLayoutManager(此,LinearLayoutManager.HORIZONTAL,false)
//progressBar.visibility=View.GONE
}
}
}
}
}

项目 数据类项( var-imageUrl:String
)问题在于这行:

details_image.setImageResource(aImageView)
您正在设置一个资源int,但您传递的似乎是一个url,因此请使用毕加索为该视图加载“iImages”值

编辑:替换此:

val aImageView = intent.getIntExtra("iImages", 0)
details_image.setImageResource(aImageView)
用这个

val retrievedImageUrl = intent.getIntExtra("iImages", 0)
Picasso.get().load(retrievedImageUrl).into(details_image)
答案

val imageView : ImageView = findViewById(R.id.details_image)
    Glide.with(this).load(intent.getStringExtra("iImages")).into(imageView)

@Elrik我编辑了我的答案,告诉我这是否解决了很多问题friend@Elrik很高兴我能帮上忙,如果你能将答案标记为解决方案,请更具体!