我需要启动一个新的活动以在Fullscreen中显示一个图像,而我的Intent在一个类中,但在我的主类之外。
class PhotoItem(val user: String, val send: String, val timestamp: Long, val country: String): Item<GroupieViewHolder>(){
override fun bind(viewHolder: GroupieViewHolder, position: kotlin.Int) {
viewHolder.itemView.textView10.text = user
viewHolder.itemView.textView13.text = timestamp.toString()
viewHolder.itemView.textView14.text = country
val uri = send
val targetImageView = viewHolder.itemView.selectphoto_imageview
val targetImageViewFullScreen = viewHolder.itemView.fullscreen
Picasso.get().load(uri).into(targetImageView)
viewHolder.itemView.setOnClickListener{v : View ->
v.getContext().startActivity(Intent(v.getContext(), FullscreenPhoto::class.java))
}
}
override fun getLayout(): kotlin.Int {
return R.layout.photo_from_row
}
}
所以我发现了这一行。v.getContext().startActivity(Intent(v.getContext(), FullscreenPhoto::class.java))
因为我不能创建一个基本的Intent。val intent = Intent(this,Home::class.java)startActivity(intent)
而且我需要用val uri将图片加载到我的Image视图中去
先谢谢你。
我想问题是 startActivity
不存在于 PhotoItem
那就换吧 GroupieViewHolder
类,并在构造函数中添加像这样的活动。
class GroupieViewHolder(val activity: Activity, /* other arguments */)
现在用这个字段在 bind
的 PhotoItem
如下:
override fun bind(viewHolder: GroupieViewHolder, position: kotlin.Int) {
// other codes.........
viewHolder.itemView.setOnClickListener{v : View ->
// using activity field for startActivity
viewHolder.activity.startActivity(Intent(v.getContext(), FullscreenPhoto::class.java))
}