package com.android.app_base.base.adapter.databinding;
|
|
import android.text.TextUtils;
|
import android.text.method.HideReturnsTransformationMethod;
|
import android.text.method.PasswordTransformationMethod;
|
import android.widget.EditText;
|
import android.widget.ImageView;
|
|
import androidx.databinding.BindingAdapter;
|
import androidx.databinding.InverseBindingAdapter;
|
|
import java.math.BigDecimal;
|
import java.util.Locale;
|
|
/**
|
* @author Ljj
|
* @date 2023.03.26. 17:38
|
* @desc
|
*/
|
public class EditTextAdapter {
|
@BindingAdapter({"passwordVisibility"})
|
public static void setPasswordVisibility(EditText editText, boolean visibility) {
|
if(visibility){
|
editText.setTransformationMethod(PasswordTransformationMethod.getInstance());
|
}else {
|
editText.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
|
}
|
editText.setSelection(editText.length());
|
}
|
|
@BindingAdapter(value = {"android:text", "need_modify_null"}, requireAll = false)
|
public static void setText(EditText view, double value,boolean needModifyNull) {
|
String valueString = BigDecimal.valueOf(value).stripTrailingZeros().toPlainString();
|
if(needModifyNull){
|
view.setText(value == 0 ? null : valueString);
|
}else {
|
view.setText(value == 0 ? "0" : valueString);
|
}
|
// String formattedValue = String.format(Locale.CHINA, "%.2f", value);
|
// if (!TextUtils.equals(view.getText().toString(), formattedValue)) {
|
// view.setText(formattedValue);
|
// }
|
}
|
|
@InverseBindingAdapter(attribute = "android:text")
|
public static double getText(EditText view) {
|
String text = view.getText().toString();
|
if (TextUtils.isEmpty(text)) {
|
return 0.0;
|
} else {
|
return Double.parseDouble(text);
|
}
|
}
|
|
@BindingAdapter({"isEditable"})
|
public static void setIsEditable(EditText editText, boolean isEditable) {
|
if(isEditable){
|
editText.setFocusable(true);
|
editText.setCursorVisible(true);
|
editText.setLongClickable(true);
|
}else {
|
editText.setFocusable(false);
|
editText.setCursorVisible(false);
|
editText.setLongClickable(false);
|
}
|
}
|
}
|