数据绑定 EditText.setText() 不起作用

问题描述 投票:0回答:0

我知道这个问题被问了好几次,但我无法让它工作。 EditText 不会填写 onCreate()、onResume()、onPostResume()。

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    binding = ActivityLoginBinding.inflate(layoutInflater)
    setContentView(binding.root)

    account = "XXXX"
    binding.etAccount.setText(account)   //doesn't work

    binding.btnLogin.setOnClickListener {

        binding.etAccount.setText(account)   //does work

    }
}

override fun onPostResume() {
    super.onPostResume()
    binding.etAccount.setText(account)  //doesn't work (onPostResume() is just an experiment)
}
<EditText
    android:id="@+id/etAccount"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="64dp"
    android:ems="16"
    android:focusedByDefault="true"
    android:hint="@string/account"
    android:text=""
    android:importantForAutofill="no"
    android:inputType="text"
    android:minHeight="48dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />
 buildFeatures {
    dataBinding true
    viewBinding true
}

提前致谢。

kotlin android-edittext android-databinding
© www.soinside.com 2019 - 2024. All rights reserved.