在android kotlin中的textinput edittext中添加两个提示标签[关闭]

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

我想根据两个条件显示两个文本输入标签,当编辑文本不聚焦时显示“您的电子邮件地址”,当它聚焦时显示“电子邮件”,以及当编辑文本不聚焦时显示“您的密码”和当密码时它重点显示“密码”。我已经使用了 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>
    </....>

帮我解决这个问题,我已经坚持了两天了。

enter image description here

android xml kotlin android-edittext onfocuschangelistener
1个回答
0
投票

我认为 .xml 文件中的 android:text 可能会弄乱提示行为。删除它或将 android:text 替换为 android:hint。

© www.soinside.com 2019 - 2024. All rights reserved.