【问题标题】:Is it possible to hide the keyboard with a button?是否可以用按钮隐藏键盘?
【发布时间】:2012-03-28 00:15:13
【问题描述】:

在我的应用程序中,我有一个选项卡系统,并且在其中一个选项卡布局中,有一个 EditText。

如果我转到不同的选项卡,键盘会保持打开状态。

所以我添加了一个可以隐藏它的按钮:

那么如何设置 Button 来关闭键盘呢?如果切换选项卡时键盘消失也会非常有用。

【问题讨论】:

  • 这里有很多关于这个话题的答案。
  • 也许是这样,但不是关于我使用标签和使用单独按钮的具体情况。

标签: java android keyboard android-softkeyboard android-tabhost


【解决方案1】:
private void hideKeyboard() {
    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(getTabHost().getApplicationWindowToken(), 0);
}

此方法隐藏键盘。在标签盒中工作。只需在每个选项卡上设置相同的 OnClickListener,它调用 hideKeyboard()。

【讨论】:

  • 我在 OnTabChangeListener 中使用了它,效果很好。谢谢!
【解决方案2】:

我在我的应用程序中所做的是尝试不使用按钮来关闭软键盘,因为我已经在使用一个按钮,而不是你的完成,称为 Del 清空 EditText 字段。我所做的是在第一次按下 EditText 时显示键盘,然后在第二次按下时隐藏它。

尝试在 EditText 的 onClick 回调函数中使用它,或者如果您想保留 Submit 按钮,然后将其添加到它的 onClick 侦听器以及您拥有的每个选项卡上。

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

希望这会有所帮助,干杯。

【讨论】:

    【解决方案3】:
        InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
    

    当你想隐藏软键盘时将这些添加到事件中......

    【讨论】:

      猜你喜欢
      • 2017-01-31
      • 2011-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-19
      相关资源
      最近更新 更多