You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android点击CardView跳转指定Activity失效,仅弹出Toast如何解决

问题根因

你为同一个item视图重复调用了两次setOnClickListener方法,后设置的点击事件会直接覆盖之前的配置,因此只有弹出Toast的逻辑生效,跳转Activity的逻辑被覆盖后不会执行。

修复实现

将两次点击逻辑合并,同时根据卡片位置判断跳转的目标Activity即可,修改后的instantiateItem方法代码如下:

override fun instantiateItem(container: ViewGroup, position: Int): Any {
    //inflate layout card_item.xml
    val view = LayoutInflater.from(context).inflate(R.layout.card_item, container, false)

    //get data
    val model = myModelArrayList.get(position)
    val title = model.title
    val description = model.description
    val date = model.date
    val image = model.image

    //set data to ui views
    view.bannerIv.setImageResource(image)
    view.titleTv.text = title
    view.descriptionTv.text = description
    view.dateTv.text = date

    // 合并到同一个点击事件回调
    view.setOnClickListener {
        // 先弹出你需要的Toast提示
        Toast.makeText(context,"$title \n $description \n $date", Toast.LENGTH_SHORT).show()
        // 根据卡片位置判断跳转目标
        val targetActivity = when(position) {
            0 -> Activity1::class.java
            1 -> Activity2::class.java
            // 后续对应卡片依次添加配置即可
            else -> SecondActivity::class.java // 默认跳转页
        }
        val intent = Intent(context, targetActivity)
        context.startActivity(intent)
    }

    //add view to container
    container.addView(view, position)
    return view
}

注意事项

  • 所有要跳转的Activity都需要提前在AndroidManifest.xml中完成注册,否则会触发崩溃
  • 如果跳转时需要携带参数,可以在Intent创建后调用putExtra方法传入对应数据即可

内容的提问来源于stack exchange,提问作者Charlie Brown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 18:54:04