单击时不显示键盘

时间:2014-03-24 14:22:00

标签: android keyboard

我正在尝试显示键盘onclick 但它没有自动显示(键盘在清单中处于隐藏状态) 工作但双击... 这是来源。

        search.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            search_friends.setVisibility(View.VISIBLE); 
            //my_friends.setVisibility(View.GONE);

            search_friends.requestFocus();
            if(search_friends.hasFocus())
            {
                getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
            }
            else
            {
                getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
            }
        }
    });

我希望单击一下......

1 个答案:

答案 0 :(得分:1)

这是我的方法,我是为Util类创建的,我在每个项目中使用它并且它可以工作:

/**
     * For hide ed == null <br/>
     * For show ed !=null
     * 
     * @param context
     *            Activity
     * @param ed
     *            EditText
     */
    public static void hideOrShowSoftKeyboard(Activity context, EditText ed) {
        try {
            InputMethodManager inputManager = (InputMethodManager) context.getSystemService(context.INPUT_METHOD_SERVICE);
            if (ed != null) {
                inputManager.showSoftInput(ed, 0);
            } else {

                inputManager.hideSoftInputFromWindow(context.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
            }

        } catch (NullPointerException e) {
            LogService.log(TAG, "NullPointerException");
        }
    }

//在您的实施中

        @Override
        public void onClick(View v) {
         search_friends.setVisibility(View.VISIBLE); 
         //for showing the keyboard
         AppNameUtils.hideOrShowSoftKeyboard(this,search_friends);
       }