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