[英]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.