强制打开软键盘

我试图强制在活动中打开软键盘,并抓住所有输入的内容,因为我想自己处理输入,我没有EditText。 目前我已经尝试过,但不起作用。 我想软键盘在下面打开mAnswerTextView(注意:它是一个TextView而不是EditText)。

    InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    // only will trigger it if no physical keyboard is open
    mgr.showSoftInput(mAnswerTextView, InputMethodManager.SHOW_IMPLICIT);
  • 我如何强制打开软键盘
  • 我如何收集所有输入的内容,以便处理每个角色。 我想在处理完软键盘后清除每个字符。 即,用户不应该能够在软键盘中输入整个单词。

  • 试试这个强制打开软键盘:

    ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
    

    那么你可以使用这段代码来关闭键盘:

    ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(_pay_box_helper.getWindowToken(), 0);
    

    您可能需要拥有某种可编辑的文本区域才能关注。 不过,你可能有一个不可见的透明背景或者没有光标的透明背景。 您可能需要仔细研究视图的可聚焦性设置。

    使用TextWatcher通过addTextChangedListener检查EditText的编辑,或者如果您需要更低级别的钩子,请使用setOnKeyListener()方法设置textview的关键侦听器。 请参阅KeyListener文档。

    使用此调用强制打开软键盘:

    ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE))
        .showSoftInput(myEditText, InputMethodManager.SHOW_FORCED);
    

    和这一个关闭它:

    ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE))
        .hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
    

    请注意,这实在是不推荐 - 强制打开键盘有点杂乱。 你真正需要的用例是什么,你需要在没有正常编辑框的情况下接受用户输入,并且需要在逐个键的基础上进行用户输入而不回显?


    强制键盘打开我使用

    this.getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE);
    

    它为我工作。

    链接地址: http://www.djcxy.com/p/92971.html

    上一篇: Forcing the Soft Keyboard open

    下一篇: Close/hide the Android Soft Keyboard