输入法工具类

平时我们开发的时候经常用到输入框控件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"
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容