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

Kotlin实现RecyclerView跳转详情页后按条件加载指定URL至WebView

Kotlin 实现方案

1. 给RecyclerView条目传递位置标识

在MainActivity的RecyclerView适配器中,给条目绑定点击事件时,把当前条目的位置通过Intent传递到DetailActivity:

// 适配器中的ViewHolder点击事件处理
inner class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
    fun bind(position: Int) {
        itemView.setOnClickListener {
            val intent = Intent(it.context, DetailActivity::class.java)
            // 传递条目位置(注意:列表索引从0开始,第2项对应position=1,第3项对应position=2)
            intent.putExtra("ITEM_POS", position)
            it.context.startActivity(intent)
        }
    }
}

2. DetailActivity中根据位置处理Button1跳转

在DetailActivity的onCreate方法中,接收传递的位置参数,给Button1设置对应跳转逻辑:

class DetailActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_detail)

        // 获取从MainActivity传来的条目位置
        val itemPos = intent.getIntExtra("ITEM_POS", -1)

        // Button1 跳转逻辑
        button1.setOnClickListener {
            val targetUrl = when(itemPos) {
                1 -> "https://youtube.com" // 对应RecyclerView第2项
                2 -> "https://gmail.com"   // 对应RecyclerView第3项
                else -> "" // 其他位置可设置默认URL或不处理
            }
            if (targetUrl.isNotEmpty()) {
                val intent = Intent(this, WebViewActivity::class.java)
                intent.putExtra("LOAD_URL", targetUrl)
                startActivity(intent)
            }
        }

        // 保留已实现的Button2跳转逻辑
        button2.setOnClickListener {
            val intent = Intent(this, WebViewActivity::class.java)
            intent.putExtra("LOAD_URL", "https://google.com")
            startActivity(intent)
        }
    }
}

3. WebViewActivity加载目标URL

确保WebViewActivity能正确接收并加载传递的URL:

class WebViewActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_web_view)

        val loadUrl = intent.getStringExtra("LOAD_URL") ?: ""
        if (loadUrl.isNotEmpty()) {
            webView.apply {
                settings.javaScriptEnabled = true // 根据业务需求开启JS支持
                loadUrl(loadUrl)
            }
        }
    }
}

额外注意

  • 确认RecyclerView的条目索引和代码中判断的itemPos对应,避免索引混淆;
  • 确保AndroidManifest.xml中已注册所有Activity,并添加网络权限:
<uses-permission android:name="android.permission.INTERNET" />

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 08:06:17