java - 在类中添加 Intent

标签 java android kotlin picasso

我需要启动一个新 Activity 来全屏显示图像,并且我的 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)

我需要将图像加载到我的 ImageView 中的 val uri

提前谢谢您。

最佳答案

我猜问题是 startActivityPhotoItem 中不可用

因此,更改 GroupieViewHolder 类并在构造函数中添加 Activity ,如下所示:

class GroupieViewHolder(val activity: Activity, /* other arguments */)

现在在 PhotoItembind 中使用该字段,如下所示:

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))

    }

关于java - 在类中添加 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61376291/

相关文章:

java - 检查Android中的视频有多长?

android - 我可以在 FirebaseMessagingService 中启动前台任务吗?

Android:检查服务是否正在运行。绑定(bind)服务

android-studio - 我应该为 Android Studio 3.0 Canary 1 使用什么 kotlin 版本?

java - spring中如何使用@Value从本地获取环境变量?

java - Android - Activity 行为?

java - 使用 java 8 计算列表中对象的属性

java - Android Facebook SDK - java.lang.NoClassDefDefFoundError

java - 将方法转换为对象以通过 HTTP 发送

android - 只要发出此 HTTP 请求,应用程序就会崩溃