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); } } }