如何从 Android 中的 Fragment 访问 UI 元素?

Posted

技术标签:

【中文标题】如何从 Android 中的 Fragment 访问 UI 元素?【英文标题】:How do can I access UI elements from a Fragment in Android? 【发布时间】:2021-11-23 19:17:45 【问题描述】:

我正在为一个大学项目构建一个简单的 android 应用程序,但在使用片段时遇到了一些问题。我不知道如何访问片段内的 UI 元素。

我们可以使用一些示例项目来回答这样的问题,但老实说,这段特定的代码让我更加困惑。

在下面的示例代码中,仅 ID 就足以引用为该特定片段创建的 XML 文件中的 TextView,但实际上这 4 行在 IDE 中像圣诞灯一样发光,我不能似乎想出了如何解决这个问题。

我应该怎么做才能使这段代码正常工作? 使用 Kotlin 访问片段内的 TextView(和其他 UI 元素)的其他替代方法是什么?

class DetailsProfileFragment : Fragment(R.layout.profile_detail)

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) 
        super.onViewCreated(view, savedInstanceState)

        val person = DataManager.person

        tvId.text = person.id
        tvSSN.text = person.socialSecurityNumber
        tvTaxId.text = person.taxId
        tvRegistrationId.text = person.registrationId

    

【问题讨论】:

你试过view.tvId...,view.tvSSn....吗? 你应该考虑启用 ViewBinding 您引用的代码似乎正在使用 kotlin android 扩展。 【参考方案1】:

你应该改变:

tvId.text = person.Id

将其他行改为:

view.findViewById<TextView>(R.id.tvId).text = person.Id

【讨论】:

以上是关于如何从 Android 中的 Fragment 访问 UI 元素?的主要内容,如果未能解决你的问题,请参考以下文章

如何收听 Google Wallet / Android Pay Fragment 中的更改按钮?

android ViewPager+Fragment 如何在ViewPager的Activity中获取Fragment中的控件对象

Android:从 viewPager 中的 Fragment 为 ListView 的适配器调用 getview()

Android 如何从 Fragment 编辑操作栏菜单

Android - 如何从 FragmentActivity 访问 Fragment

android - 将数据从 Activity 传递到 ViewPager 中的 Fragment