EditText
中的文本
afterTextChanged
代码:
inputEmail.addTextChangedListener(object :TextWatcher{
override fun afterTextChanged(s: Editable?) {
inputEmail.setText("123456")
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
}
})
错误:
at com.caring2u.organizer.ui.fragments.screen.FrgBookingDetails$setEditTextListeners$4.afterTextChanged(FrgBookingDetails.kt:256)
at android.widget.TextView.sendAfterTextChanged(TextView.java:9605)
at android.widget.TextView.setText(TextView.java:5496)
at android.widget.TextView.setText(TextView.java:5343)
at android.widget.EditText.setText(EditText.java:113)
at android.widget.TextView.setText(TextView.java:5300)
答案 0 :(得分:2)
在EditText
中更改TextWatcher
根本不是一个好主意。
将text
设置为editText
时,您的TextWatcher
将再次呼叫。
注意:-并且它将进入无限循环。
解决方案:-
在TextWacher
中使用字符串值作为结果,并在文本观察器外部更改ExitText
。
使用TextView
,您可以这样做.....
在如下所示的布局中创建TextView
。
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/edit_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/border_edittext"
android:gravity="center"
android:inputType="number"
android:padding="10dp"
android:singleLine="true" />
<TextView
android:id="@+id/text_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/border_edittext"
android:gravity="center"
android:inputType="number"
android:padding="10dp"
android:singleLine="true" />
</FrameLayout>
并使用textWatcher
并在TextView
方法内更新您的onTextChange()
文本
另一种解决方案:-像这样创建XMl
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="wrap_content">
<EditText
android:id="@+id/code"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:background="@drawable/border_edittext"
android:gravity="center"
android:inputType="number"
android:padding="10dp"
android:text=""
android:singleLine="true" />
<EditText
android:id="@+id/mobile"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/border_edittext"
android:gravity="center"
android:inputType="number"
android:padding="10dp"
android:singleLine="true" />
</LinearLayout>
用editText
的{{1}}中的id
用您的textWatcher
代码更新您的editText
/ strong>。