如何从 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()