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

Android Kotlin开发如何实现从BottomSheet跳转至其他Activity

实现方法

你只需要从已经加载的BottomSheet布局实例中找到对应按钮,设置点击事件后执行跳转逻辑即可,修改后的完整代码如下:

class NewSignUpActivity : AppCompatActivity() {

    private lateinit var btnBottomSheet: RelativeLayout

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_rider_or_bike)

        btnBottomSheet = findViewById(R.id.riderBtn)
        val bottomSheetCallback = object : BottomSheetBehavior.BottomSheetCallback(){
            override fun onStateChanged(bottomSheet: View, newState: Int) {}
            override fun onSlide(bottomSheet: View, slideOffset: Float) {}
        }
        val bottomSheetView = layoutInflater.inflate(R.layout.layout_bottom_sheet, null)
        val bottomSheetDialog = BottomSheetDialog(this)
        bottomSheetDialog.setContentView(bottomSheetView)
        val bottomSheetBehavior = BottomSheetBehavior.from(bottomSheetView.parent as View)
        bottomSheetBehavior.setBottomSheetCallback(bottomSheetCallback)

        // 从BottomSheet布局中查找YES按钮
        val yesBtn = bottomSheetView.findViewById<AppCompatButton>(R.id.yellowBtn)
        // 设置YES按钮点击事件
        yesBtn.setOnClickListener {
            // 先关闭弹窗
            bottomSheetDialog.dismiss()
            // 执行页面跳转,将TargetActivity替换为你实际要跳转的目标Activity类名即可
            val jumpIntent = Intent(this@NewSignUpActivity, TargetActivity::class.java)
            // 如果需要传参可以调用 jumpIntent.putExtra("参数名", 参数值)
            startActivity(jumpIntent)
        }

        // 补充NO按钮的关闭逻辑,不需要可以删除
        val noBtn = bottomSheetView.findViewById<AppCompatButton>(R.id.noBtn)
        noBtn.setOnClickListener {
            bottomSheetDialog.dismiss()
        }

        // 补充右上角关闭按钮逻辑,需要先给布局里的关闭ImageView加id android:id="@+id/closeIv"
        // val closeIv = bottomSheetView.findViewById<AppCompatImageView>(R.id.closeIv)
        // closeIv.setOnClickListener {
        //     bottomSheetDialog.dismiss()
        // }

        btnBottomSheet.setOnClickListener {
            bottomSheetBehavior.state = BottomSheetBehavior.STATE_EXPANDED
            bottomSheetDialog.show()
        }
    }
}

注意事项:

  • 目标Activity需要提前在AndroidManifest.xml中注册,否则会触发跳转报错
  • 布局中的关闭ImageView默认没有设置id,需要使用关闭功能的话先在XML里给该控件添加id属性

内容的提问来源于stack exchange,提问作者Lovely Joy Figueras

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:54:05