如何从另一个函数更新在 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 个建议给你:
不要在 onCreateView() 中实例化视图,尝试使用 onViewCreated() 实例化。
使用 kotlin 扩展或数据绑定来访问视图,它可以省去很多麻烦,而且实际上更容易使用。
我根据 Manzur Alahi 的建议解决了这个问题。我没有使用 findViewById
来获取 TextView
,而是添加了无需使用 findViewById
即可直接访问 TextView
的插件。您可以在这里了解更多信息:https://antonioleiva.com/kotlin-android-extensions/
更新代码(无需在 OnViewCreated
中声明任何内容):
fun update(){
Textview.txt="It works"
}
我正在尝试更新我在 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 个建议给你:
不要在 onCreateView() 中实例化视图,尝试使用 onViewCreated() 实例化。
使用 kotlin 扩展或数据绑定来访问视图,它可以省去很多麻烦,而且实际上更容易使用。
我根据 Manzur Alahi 的建议解决了这个问题。我没有使用 findViewById
来获取 TextView
,而是添加了无需使用 findViewById
即可直接访问 TextView
的插件。您可以在这里了解更多信息:https://antonioleiva.com/kotlin-android-extensions/
更新代码(无需在 OnViewCreated
中声明任何内容):
fun update(){
Textview.txt="It works"
}