在 class 中添加 Intent
Add a Intent in a class
我需要启动一个新的 activity 以全屏显示图像,我的 Intent 在 class 但在我的主 class.
之外
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 才能将图像加载到我的图像视图中
提前致谢。
我想问题是 startActivity
在 PhotoItem
中不可用
所以改变 GroupieViewHolder
class 并在构造函数中添加 activity 像这样:
class GroupieViewHolder(val activity: Activity, /* other arguments */)
现在在 PhotoItem
的 bind
中使用该字段,如下所示:
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))
}
我需要启动一个新的 activity 以全屏显示图像,我的 Intent 在 class 但在我的主 class.
之外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 才能将图像加载到我的图像视图中
提前致谢。
我想问题是 startActivity
在 PhotoItem
所以改变 GroupieViewHolder
class 并在构造函数中添加 activity 像这样:
class GroupieViewHolder(val activity: Activity, /* other arguments */)
现在在 PhotoItem
的 bind
中使用该字段,如下所示:
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))
}