键盘隐藏/显示在webview中

时间:2014-02-11 06:47:47

标签: android webview android-keypad android-input-method

我试过这个。它适用于三星平板电脑。

  

在页面1_4.html我必须隐藏键盘和2.html我必须显示   键盘。

     

在文本框中单击webview中的

     

注意:Android活动是相同的。

     

我在webView.setOnTouchListener

上调用此代码
        if (value.equals("1") || value.equals("4")) {

            getWindow().setFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM,WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
            getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

        } else if(value.equals("2")) {
            getWindow().clearFlags( WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
        }

但它不适用于任何手机。它给了我警告

  

W / InputMethodManager(25060):startInputInner:InputBindResult == null

我有谷歌。但没有找到任何有用的东西。

我现在该怎么办?任何帮助都会得到赞赏。

2 个答案:

答案 0 :(得分:2)

要打开键盘,请尝试此

webview.postDelayed(new Runnable() {
           @Override
           public void run() {
               InputMethodManager keyboard = (InputMethodManager)
               MainActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE);
               keyboard.showSoftInput(webview, 0);
           }
},100); 

要关闭键盘,请尝试此

InputMethodManager inputMethodManager = (InputMethodManager)MainActivity.this.getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(MainActivity.this.getCurrentFocus().getWindowToken(), 0);

答案 1 :(得分:0)

尝试此代码:这适用于所有设备。

 try
 {
    if(isopen)
    {    
       // to hide keyboard
       InputMethodManager inputMethodManager = (InputMethodManager)context.getSystemService(Activity.INPUT_METHOD_SERVICE);
       inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
    }else{
       // to open keyboard
       InputMethodManager inputMethodManager=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
       inputMethodManager.toggleSoftInputFromWindow(linearLayout.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0);
    }
    }
    catch (NullPointerException e) 
    {
    }
    catch (Exception e) 
    {
    }