Android Edittext焦点处理;

1、进入界面EditText自动获取焦点并弹出软键盘;

EditText不做任何处理,进入界面会自动或焦;

清单文件中给该Activity设置 android:windowSoftInputMode="stateVisible" ,就会自动弹出软键盘了;

2、进入界面EditText不获取焦点也不弹出软键盘;

android:focusable="true"
android:focusableInTouchMode="true"

给该EditText的父布局加上以上两个属性就不会自动获取焦点了;让父布局抢走焦点;

清单文件中给该Activity设置 android:windowSoftInputMode="stateHidden"

3、EditText获取焦点和失去焦点的监听:

 etSearch.setOnFocusChangeListener(new View.OnFocusChangeListener() {
           @Override
           public void onFocusChange(View v, boolean hasFocus) {
               if (hasFocus) {
                   // 获取焦点时
                   tvCancle.setVisibility(View.VISIBLE);
               } else {
                   // 失去焦点时
                   tvCancle.setVisibility(View.GONE);
               }
           }
       });

4、主动让EditText失去焦点、获取焦点;

 etSearch.clearFocus(); //让输入框失去焦点
 etSearch.requestFocus(); //让输入框获取焦点

附:隐藏软键盘:

public void hideSystemSoftKeyboard(Activity activity){
        ((InputMethodManager)activity.getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
    }

 

你可能感兴趣的:(Android)