无法使用Kotlin访问EditText或其他UI组件
我正在使用Android Studio 3.0 RC2&Kotlin。
当我尝试访问一个UI组件时,应用程序崩溃,除非我先写findViewById。 我以为Kotlin应该摆脱不得不写的findViewById
线? 用户界面是一个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只是返回充气的看法。
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中,您可以访问您的视图组件
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) { userNameField.setText("hello world") }