gpt4 book ai didi

android - 编辑文本中的绘图权在错误后不更新

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:15:20 24 4
gpt4 key购买 nike

Android 中的编辑文本不允许在setError 后更改可绘制能力。我已经为密码字段使用了 drawable 权限,但是如果密码字段中出现错误,它将不允许在它之后更改 draw able。在出错之前它工作正常。

<EditText
android:id="@+id/edt_reg_password"
style="@style/editText_full_view"
android:layout_height="wrap_content"
android:layout_below="@id/edt_reg_email"
android:layout_marginTop="@dimen/padding_normal"
android:drawableLeft="@mipmap/ic_action_password"
android:drawableRight="@mipmap/ic_action_password_visibility"
android:drawablePadding="@dimen/padding_normal"
android:hint="@string/hint_password"
android:inputType="textPassword"
android:maxLength="25"
android:paddingLeft="@dimen/padding_normal"
tools:visibility="visible" />

改变眼睛图标运行时间的Java代码

private void setPasswordDrawable()
{
final Drawable showpass_icon = getResources().getDrawable(R.mipmap.ic_action_password_visibility);
final Drawable hidepass_icon = getResources().getDrawable(R.mipmap.ic_action_password_visibility_off);


final Drawable pass_drawable = getResources().getDrawable(R.mipmap.ic_action_password);
pass_drawable.setBounds(0, 0, pass_drawable.getIntrinsicWidth(), pass_drawable.getIntrinsicHeight());


//edtPassword.setCompoundDrawables(pass_drawable, null, showpass_icon, null);

edtPassword.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (edtPassword.getCompoundDrawables()[2] == null) {
return false;
}
if (event.getAction() != MotionEvent.ACTION_UP) {
return false;
}
if (event.getX() > edtPassword.getWidth() - edtPassword.getPaddingRight()
- showpass_icon.getIntrinsicWidth()) {

if (isPasswordVisible) {

runOnUiThread(new Runnable() {
@Override
public void run() {

//edtPassword.setError(null);
edtPassword.setTransformationMethod(
PasswordTransformationMethod.getInstance());
edtPassword.setSelection(edtPassword.getText().length());

showpass_icon.setBounds(0, 0, showpass_icon.getIntrinsicWidth(), showpass_icon.getIntrinsicHeight());
edtPassword.setCompoundDrawables(pass_drawable, null, showpass_icon, null);


}
});

isPasswordVisible = false;
} else {

runOnUiThread(new Runnable() {
@Override
public void run() {

//edtPassword.setError(null);
edtPassword.setTransformationMethod(
HideReturnsTransformationMethod.getInstance());
edtPassword.setSelection(edtPassword.getText().length());
hidepass_icon.setBounds(0, 0, hidepass_icon.getIntrinsicWidth(), hidepass_icon.getIntrinsicHeight());
edtPassword.setCompoundDrawables(pass_drawable, null, hidepass_icon, null);
}
});

isPasswordVisible = true;
}
}
return false;
}
});

}

设置错误

public void setViewError(View view, String message)
{
if (view instanceof EditText) {
((EditText) view).setError(message);
}
}

live example

最佳答案

你可以这样使用 -

if(error=true){
editText.setCompoundDrawablesWithIntrinsicBounds(
0, 0,R.drawable.ic_error, 0);
editText.setCompoundDrawablePadding(5);}
else{
editText.setCompoundDrawablesWithIntrinsicBounds(
0, 0,R.drawable.ic_corrct, 0);
editText.setCompoundDrawablePadding(5);}

关于android - 编辑文本中的绘图权在错误后不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34717302/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com