繁体   English   中英

如何通过 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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM