平时我们开发的时候经常用到输入框控件EditText,往往需要打开或者关闭输入法键盘这些操作,这里为了方便使用,整理了一些工具类方法。
1、打开输入法键盘
第一种方法:
public static void openSoftInput(Context context, EditText editText){
try{
InputMethodManager imm = (InputMethodManager)context.getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_FORCED);
} catch(Exception e) {
Log.e(e, "打开软键盘出错");
}
}
第二种方法:
public static void openSoftInput(Context context) {
try{
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0,.HIDE_NOT_ALWAYS);
} catch(Exception e) {
Log.e(e, "打开软键盘出错");
}
}
2、关闭输入法键盘
第一种方法:
public static void closeSoftInput(Context context, EditText editText) {
try {
InputMethodManager manager = () context.getSystemService(Context.INPUT_METHOD_SERVICE);
manager.hideSoftInputFromWindow(editText.getWindowToken(),0);
} catch (Exception e) {
Log.e(e, "关闭软键盘出错");
}
}
第二种方法:
public static void closeSoftInput(Context context) {
try {
InputMethodManager im = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
View view = ((Activity) context).getWindow().getCurrentFocus();
im.hideSoftInputFromWindow(view.(),InputMethodManager.HIDE_NOT_ALWAYS);
} catch(Excetion e) {
Log.e(e, "关闭软键盘出错");
}
}
3、获取输入焦点
public static void inputFocusGain(EditText editText) {
editText.setFocusableInTouchMode(true);
editText.setFocusable(true);
editText.requestFocus();
}
4、失去焦点
public static void inputFocusLoss(EditText editText) {
editText.setFocusableInTouchMode(false);
editText.setFocusable(false);
}
另外对于一些特殊需求,进入界面就需要自动打开输入键盘可以在Mainfest文件里配置
android:windowSoftInputMode="stateVisible"