首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >kotlin在片段中打开新的活动

kotlin在片段中打开新的活动
EN

Stack Overflow用户
提问于 2022-04-08 09:11:01
回答 1查看 300关注 0票数 0

我在最后一个紧固支撑的第二个上有个错误。

错误:带块体({.})的函数所需的“返回”表达式

我试图从碎片中的ImageButton (仪表板)中打开一个活动(TMs)。

代码语言:javascript
复制
class Dashboard : Fragment() {


override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View {

    // Inflate the layout for this fragment
    val view = inflater.inflate(R.layout.fragment_dashboard, container, false)

    view.findViewById<ImageButton>(R.id.card1).setOnClickListener {
        val card1 = Intent(activity, TMs::class.java)
        activity?.startActivity(card1)
    }
}

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-08 09:24:37

函数onCreateView确实返回一个视图。您已经膨胀了View对象,只需返回它。

代码语言:javascript
复制
override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View { 
val view = inflater.inflate(R.layout.fragment_dashboard, container, false)

..code..

return view

无论如何,我强烈建议您在onViewCreated()中插入onViewCreated()和任何其他UI逻辑。因此,我们按照步骤创建该片段,首先在onCreateView():View上“膨胀视图”,然后创建它之后,我们可以添加UI逻辑(作为侦听器)。

看起来是这样的:

代码语言:javascript
复制
class Dashboard : Fragment() {

    private lateinit var _view: View

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View {
        _view = inflater.inflate(R.layout.fragment_dashboard, container, false)

        return _view
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        view.findViewById<ImageButton>(R.id.card1).setOnClickListener {
            val card1 = Intent(activity, TMs::class.java)
            activity?.startActivity(card1)
        }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71794429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档