android强制隐藏软键盘以及取消EditText的焦点

 

直接上代码:

/**
 * 切换软键盘的状态
 * 如当前为收起变为弹出,若当前为弹出变为收起
 */
private void toggleInput(Context context){
        InputMethodManager inputMethodManager =
        (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
        inputMethodManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
    }

/**
 * 强制隐藏输入法键盘
 */
private void hideInput(Context context,View view){
        InputMethodManager inputMethodManager =
        (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
        inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(),0);
    }

/**
 * root为需要点击取消edittext焦点的layout
 */ 
root.setOnTouchListener(new View.OnTouchListener() {
                        @Override
                        public boolean onTouch(View v, MotionEvent event) {
                            root.setFocusable(true);
                            root.setFocusableInTouchMode(true);
                            root.requestFocus();
                            return true;
                        }


/**
 * 如果界面较为简单
 */
InputMethodManager inputMethodManager = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE); 
@Override
    public boolean onTouchEvent(MotionEvent event) {
        // TODO Auto-generated method stub
        if(event.getAction() == MotionEvent.ACTION_DOWN){
            if(getCurrentFocus()!=null && getCurrentFocus().getWindowToken()!=null){
                manager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
            }

        }
        return super.onTouchEvent(event);
    }
 
 
 

你可能感兴趣的:(android)