Не удается получить доступ к EditText или другим компонентам пользовательского интерфейса с помощью Kotlin

Я использую Android Studio 3.0 RC2 и Kotlin.

Когда я пытаюсь получить доступ к компоненту пользовательского интерфейса, приложение аварийно завершает работу, если я не сначала напишу findViewById. Я думал, что Котлин должен был избавиться от необходимости писать строку 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") }