gpt4 book ai didi

android - 无法使用 Kotlin 访问 EditText 或其他 UI 组件

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:10:07 24 4
gpt4 key购买 nike

我正在使用 Android Studio 3.0 RC2 和 Kotlin。

当我尝试访问 UI 组件时,除非我先编写 findViewById,否则应用程序会崩溃。我认为 Kotlin 应该摆脱必须编写 findViewById 行? UI 是一个 fragment ,我正在尝试从相同的 fragment 代码进行访问。有没有办法不必写 findViewById?

这些行有效:

var userNameField = view?.findViewById<EditText>(R.id.userNameTextField) as EditText
userNameField.setText("hello world")

如果没有 findViewById 行,该行将无法工作

userNameTextField.setText("hello world")

我还有

import kotlinx.android.synthetic.main.fragment_sign_in.*

onCreateView()代码:

 override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
// Inflate the layout for this fragment
var view = inflater!!.inflate(R.layout.fragment_sign_in, container, false)

var userNameField = view?.findViewById<EditText>(R.id.userNameTextField) as EditText
userNameField.setText("hello world")

return view
}

最佳答案

在 onCreateView 中只返回膨胀 View 。

override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
// Inflate the layout for this fragment
return inflater!!.inflate(R.layout.fragment_sign_in, container, false)

}

在 onViewCreated 你可以访问你的 View 组件

override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
userNameField.setText("hello world")
}

关于android - 无法使用 Kotlin 访问 EditText 或其他 UI 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46882421/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com