如何从另一个函数更新在 OnViewCreated 中声明的 textview

How to update textview declared in OnViewCreated from another function

我正在尝试更新我在 Kotlin 中的片段的 TextView。在片段的 onViewCreated 中声明 TextView 时,我如何能够更新它?

onViewCreated 函数内部:

val txt = view.findViewById<View>(R.id.txt) as TextView

在另一个函数中:

fun update(){
    txt.text= "Hello"
}

You can't access it if its declared inside the onCreateView()

相反,请在 class 级别尝试此操作。

class MyFragment : Fragment(){

   lateinit var txt: TextView

}

然后将您的 textView 分配给变量。

虽然我有 2 个建议给你:

  1. 不要在 onCreateView() 中实例化视图,尝试使用 onViewCreated() 实例化。

  2. 使用 kotlin 扩展或数据绑定来访问视图,它可以省去很多麻烦,而且实际上更容易使用。

我根据 Manzur Alahi 的建议解决了这个问题。我没有使用 findViewById 来获取 TextView,而是添加了无需使用 findViewById 即可直接访问 TextView 的插件。您可以在这里了解更多信息:https://antonioleiva.com/kotlin-android-extensions/

更新代码(无需在 OnViewCreated 中声明任何内容):

fun update(){
Textview.txt="It works"
}