我想根据两个条件显示两个文本输入标签,当编辑文本不聚焦时显示“您的电子邮件地址”,当它聚焦时显示“电子邮件”,以及当编辑文本不聚焦时显示“您的密码”和当密码时它重点显示“密码”。我已经使用了 onfocusedchangelistener 但不起作用。
viewBinding.email.editText.setOnFocusChangeListener { v, hasFocus ->
Toast.makeText(requireContext(), "comes in edittext", Toast.LENGTH_LONG).show()
if (hasFocus) {
viewBinding.email.setHint("Email")
} else {
viewBinding.email.setHint("Your email address")
}
}
viewBinding.password.editText.setOnFocusChangeListener { v, hasFocus ->
Toast.makeText(requireContext(), "comes in password", Toast.LENGTH_LONG).show()
if (hasFocus) {
viewBinding.password.setHint("Password")
} else {
viewBinding.password.setHint("Your Password")
}
}
<....
android:id="@+id/email"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_24"
android:layout_marginEnd="@dimen/dp_16"
android:enabled="@{!viewModel.progressLiveData}"
android:text="@={viewModel.emailLiveData}"
app:endIconMode="clear_text"
android:inputType="textWebEmailAddress"
app:counterMaxLength="128"
android:focusable="true"
android:focusableInTouchMode="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/welcomeBackLabel"
app:sfTextInputStyle="filled.light" >
</requestfocus>
</....>
<.....
android:id="@+id/password"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_16"
android:layout_marginEnd="@dimen/dp_16"
android:enabled="@{!viewModel.progressLiveData}"
android:text="@={viewModel.passwordLiveData}"
app:endIconMode="cleartext"
android: focusable="true"
android:focusableInTouchMode="true"
android:inputType="textNoSuggestions|textPassword"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/email"
app:sfTextInputStyle="filled. Light" >
</requestfocus>
</....>
帮我解决这个问题,我已经坚持了两天了。
我认为 .xml 文件中的 android:text 可能会弄乱提示行为。删除它或将 android:text 替换为 android:hint。