如何通过 Kotlin 将拖动视图的 ID 传递给 setImageResource(resID:Int)?

How can I pass the ID of dragged view into setImageResource(resID:Int) via Kotlin?

我想将一张图片移动到另一张空图片中。执行此操作时应删除拖动的图片,放置目标应复制拖动图片包含的数据。

        val myOnDragListener = View.OnDragListener { v, event ->
        val draggedView = event.localState as ImageView 

        if(event.action == DragEvent.ACTION_DROP){
            (v as ImageView).setImageResource(draggedView.id)
            draggedView.setImageDrawable(null)
        }

        true
    }

我可以使用 localState 将拖动的数据复制到 draggedView 中。之后,当发生放置事件时,它应该更改放置目标的图像资源,但事实并非如此。这是程序崩溃的地方。

setImageResource 说它需要一个 Int 参数,但据我所知它只接受 setImageResource(R.drawable.name) 语法。

如何将拖动视图的 ID 传递给 setImageResource(resID:Int)

首先尝试使用资源 ID

设置标签
val myImageView = findViewById<ImageView>(R.id.my_imageView);
myImageView.setImageResource(R.drawable.drawable_name)          
myImageView.setTag(R.drawable.drawable_name);

然后就可以拿到标签了

 val myOnDragListener = View.OnDragListener { v, event ->
    val draggedView = event.localState as ImageView

    val tag=draggedView.tag as Int
    if(event.action == DragEvent.ACTION_DROP){
        (v as ImageView).setImageResource(tag)
        draggedView.setImageDrawable(null)
    }

    true
}