使用 Kotlin 在片段中以编程方式创建按钮

发布于 2025-01-18 15:00:33 字数 951 浏览 0 评论 0原文

我希望从数据库中在Kotlin中的片段中生成一列按钮。目前,我只尝试了一个按钮,但是我似乎无法在XML文件中进行硬编码而无法执行此操作。到目前为止,这是我的代码:

class NotesFragment() : Fragment() {


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

        val view: View = inflater!!.inflate(R.layout.fragment_notes, container, false)
        //val root : ViewGroup = inflater.inflate(R.layout.fragment_notes, null) as ViewGroup

        val button_Id: Int = 1111
        val button = Button((activity as MainActivity?)!!)
        button.setText("Button 4 added dynamically")
        button.setLayoutParams(ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT))
        button.setId(button_Id)
        button.x = 250f
        button.y = 500f
        button.setOnClickListener(this)
        view.add(button)

        return view
    }
}

我知道我可能应该在此处某处寻找布局,然后对其进行addView ...下一步是什么?

I wish to generate a column of buttons inside a fragment in Kotlin from a database. For now I tried with just one button, but I cannot seem to do it without hardcoding it in the XML file. Here is my code so far:

class NotesFragment() : Fragment() {


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

        val view: View = inflater!!.inflate(R.layout.fragment_notes, container, false)
        //val root : ViewGroup = inflater.inflate(R.layout.fragment_notes, null) as ViewGroup

        val button_Id: Int = 1111
        val button = Button((activity as MainActivity?)!!)
        button.setText("Button 4 added dynamically")
        button.setLayoutParams(ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT))
        button.setId(button_Id)
        button.x = 250f
        button.y = 500f
        button.setOnClickListener(this)
        view.add(button)

        return view
    }
}

I know I should probably look for the layout somewhere in this and do an addView with it... What is the next step?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

丑疤怪 2025-01-25 15:00:33

我这样做

view.rootView.findViewById(R.id.button_container).addView(button)

I did it like this

view.rootView.findViewById<RelativeLayout>(R.id.button_container).addView(button)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文