如何在 editText 中显示交替图标?
how do I display the alternating icons in editText?
所以我有带有关闭和成功图标以及最大密码 6 的 editText,我做的第一件事是如果密码不是最大 6,图标会像我画的那样保持关闭状态,如果密码最大为 6 然后关闭图标更改为成功图标,我的问题如果满足最多 6 个条件,如何将关闭图标更改为成功图标
这是我的代码
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputPassword"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="20dp"
android:hint="Password"
app:counterEnabled="true"
app:counterMaxLength="6"
app:endIconMode="clear_text"
app:endIconDrawable="@drawable/ic_canceles"
app:errorEnabled="true"
app:endIconTint="#DF0000"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textInputEmail">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/editTextPassword"
android:layout_width="match_parent"
android:maxLines="1"
android:layout_height="wrap_content" />
</com.google.android.material.textfield.TextInputLayout>
在创建方法中试试这个
TextInputLayout editText = findViewById(R.id.textInputPassword);
editText.getEditText().addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.toString().length() > 6) {
editText.setEndIconDrawable(R.drawable.success);
} else {
editText.setEndIconDrawable(R.drawable.ic_canceles);
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
你可以这样做:
textInputPassword.seticon(R.drawable.image);
所以我有带有关闭和成功图标以及最大密码 6 的 editText,我做的第一件事是如果密码不是最大 6,图标会像我画的那样保持关闭状态,如果密码最大为 6 然后关闭图标更改为成功图标,我的问题如果满足最多 6 个条件,如何将关闭图标更改为成功图标
这是我的代码
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputPassword"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="20dp"
android:hint="Password"
app:counterEnabled="true"
app:counterMaxLength="6"
app:endIconMode="clear_text"
app:endIconDrawable="@drawable/ic_canceles"
app:errorEnabled="true"
app:endIconTint="#DF0000"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textInputEmail">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/editTextPassword"
android:layout_width="match_parent"
android:maxLines="1"
android:layout_height="wrap_content" />
</com.google.android.material.textfield.TextInputLayout>
在创建方法中试试这个
TextInputLayout editText = findViewById(R.id.textInputPassword);
editText.getEditText().addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.toString().length() > 6) {
editText.setEndIconDrawable(R.drawable.success);
} else {
editText.setEndIconDrawable(R.drawable.ic_canceles);
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
你可以这样做:
textInputPassword.seticon(R.drawable.image);