| package com.doumee.lib_coremodel.binding.viewadapter.edittext; | 
|   | 
| import android.content.Context; | 
| import android.text.Editable; | 
| import android.text.TextWatcher; | 
| import android.view.inputmethod.InputMethodManager; | 
| import android.widget.EditText; | 
|   | 
| import androidx.databinding.BindingAdapter; | 
|   | 
| import com.doumee.lib_coremodel.binding.command.BindingCommand; | 
|   | 
|   | 
| /** | 
|  * Created by goldze on 2017/6/16. | 
|  */ | 
|   | 
| public class ViewAdapter { | 
|     /** | 
|      * EditText重新获取焦点的事件绑定 | 
|      */ | 
|     @BindingAdapter(value = {"requestFocus"}, requireAll = false) | 
|     public static void requestFocusCommand(EditText editText, final Boolean needRequestFocus) { | 
|         if (needRequestFocus) { | 
|             editText.setSelection(editText.getText().length()); | 
|             editText.requestFocus(); | 
|             InputMethodManager imm = (InputMethodManager) editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); | 
|             imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT); | 
|         } | 
|         editText.setFocusableInTouchMode(needRequestFocus); | 
|     } | 
|   | 
|     /** | 
|      * EditText输入文字改变的监听 | 
|      */ | 
|     @BindingAdapter(value = {"textChanged"}, requireAll = false) | 
|     public static void addTextChangedListener(EditText editText, final BindingCommand<String> textChanged) { | 
|         editText.addTextChangedListener(new TextWatcher() { | 
|             @Override | 
|             public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { | 
|   | 
|             } | 
|   | 
|             @Override | 
|             public void onTextChanged(CharSequence text, int i, int i1, int i2) { | 
|                 if (textChanged != null) { | 
|                     textChanged.execute(text.toString()); | 
|                 } | 
|             } | 
|   | 
|             @Override | 
|             public void afterTextChanged(Editable editable) { | 
|   | 
|             } | 
|         }); | 
|     } | 
| } |