1、进入界面EditText自动获取焦点并弹出软键盘;
<activity
android:name=".activity.SettingPwdActivity"
android:label="修改密码"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateVisible|adjustPan" />
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);
}