点击按钮隐藏软键盘

来源:互联网 发布:java同名包类加载顺序 编辑:程序博客网 时间:2024/04/30 13:46

在activity中点击按钮隐藏软键盘

public class FindActivity extends BaseActivity implements OnClickListener{    private InputMethodManager imm;     protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_find);            imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);        } // 点击事件public void onClick(View v) {        switch (v.getId()) {        case R.id.find_right_cancle:            hide(this);  // 隐藏软键盘            if ("搜索".equals(mTextView.getText())) {                // TODO 得到输入的内容提交到服务端                String text = mEditText.getText().toString(); //              loadData(true, 1, 10,text);                mLinearLayout.setVisibility(View.GONE);  // 隐藏热门搜索                // 弹出进度动画   搜索成功显示列表,失败显示一句话                mTextViewError.setVisibility(View.VISIBLE);  // 显示搜索失败的一句话            }else{                finish();            }            break;        case R.id.find_back_img:            finish();            break;        default:            break;        }           }public void hide(Context context) {         View view = getWindow().peekDecorView();         if (view != null && view.getWindowToken() != null) {                 imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);                 imm.hideSoftInputFromWindow(view.getWindowToken(), 0);         }     }

在fragment中点击空白出隐藏软键盘

//事件分发,在主控制器MainActivity中写public boolean dispatchTouchEvent(MotionEvent ev) {            switch (ev.getAction()) {            case MotionEvent.ACTION_DOWN:                downX=(int) ev.getX();                downY=(int) ev.getY();                break;            case MotionEvent.ACTION_MOVE:                int moveX=(int) ev.getX();                int moveY=(int) ev.getY();                if (Math.abs(moveX-downX)>=0 || Math.abs(moveY-downY)>=0) {                    hide(MainActivity.this);                }                break;            }            return super.dispatchTouchEvent(ev);        }/**     *  调用该方法隐藏键盘     * @param context     */        public static void hide(Context context) {             InputMethodManager imm  = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);         View view = ((MainActivity) context).getWindow().peekDecorView();         if (view != null && view.getWindowToken() != null) {                 imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);                 imm.hideSoftInputFromWindow(view.getWindowToken(), 0);         } }   
0 0