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

如何将主Activity的View传递给已移至其他类的函数以正常调用

实现方式

方案1:传入根View参数

直接给伴生对象的目标函数新增View类型入参,调用时传入主Activity的根布局即可:

  • 工具类代码示例:
class YourToolClass {
    companion object {
        // 新增rootView入参
        fun yourFunctionName(rootView: View) {
            val nav: BottomNavigationView = rootView.findViewById(R.id.bottom_navigation)
            // 此处保留你原来的业务逻辑即可
        }
    }
}
  • 主Activity调用代码:
// 传入Activity根View,也可以传入你setContentView时加载的布局实例
YourToolClass.yourFunctionName(window.decorView.rootView)

方案2:传入MainActivity实例(更稳定)

如果允许传入Activity实例,直接传Activity调用findViewById,不会出现id匹配错误的问题:

  • 工具类代码示例:
class YourToolClass {
    companion object {
        fun yourFunctionName(activity: MainActivity) {
            val nav: BottomNavigationView = activity.findViewById(R.id.bottom_navigation)
            // 此处保留你原来的业务逻辑即可
        }
    }
}
  • 主Activity调用代码:
// 主Activity内部直接传this
YourToolClass.yourFunctionName(this)

注意:不要将传入的Activity实例存储为静态变量,避免内存泄漏,仅在函数内部临时使用即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:15:04