【问题标题】:Permanent keyboard visibility for my application我的应用程序的永久键盘可见性
【发布时间】:2012-08-31 10:38:21
【问题描述】:

我正在尝试为平板电脑制作一个安卓应用程序。默认情况下,我需要在所有活动上方显示键盘,并且当用户按下返回键时,我不需要隐藏键盘。 有什么办法让它发挥作用???

编辑:使用自定义 EditText 解决

    public class CustomEdit extends EditText {

public CustomEdit(Context context, AttributeSet attrs) {
    super(context, attrs);
    // TODO Auto-generated constructor stub
}
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub
    Log.e("Log", "onKeyPreIme");
    return true;
    //return super.onKeyPreIme(keyCode, event);
}

}

Android: How to make the keypad always visible?

【问题讨论】:

  • 这是用户期望的默认功能的一个很好的突破,所以我不得不问你为什么要这样做?
  • 我们的客户说他们需要它,这就是原因。

标签: android static keyboard visibility


【解决方案1】:

你可以在你的清单中使用它,android:windowSoftInputMode="stateAlwaysVisible" 用于你所有的活动。

【讨论】:

  • 之前试过,不行。键盘隐藏在返回键上。我需要一个永久键盘。无论如何感谢您的帮助。
  • @FavasKv :是的,这就是您需要覆盖 BackButton 的原因。
  • @swayam 活动 onBackPressed() 方法在键盘可见时不会调用。
【解决方案2】:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);

并且还添加这个来捕捉被按下的后退按钮并且什么都不做。

@Override
    public void onBackPressed() {
        // do nothing
        return;

    }

还有,

mEditText.setOnKeyListener(new View.OnKeyListener() {
            public boolean onKey(View v, int keyCode, KeyEvent event) {


            if (keyCode == KeyEvent.KEYCODE_BACK) 
                     // again do nothing

              return false;
                  } };

注意: 仅添加 android:windowSoftInputMode="stateAlwaysVisible" 最初会显示键盘,但如果您不覆盖,则可以通过按 BackButton 将其关闭后退按钮。

【讨论】:

    【解决方案3】:

    我已经在我的一个应用程序中实现了这一点。 你需要以下代码。

    // getting InputMethodManager system service which will handle aur
            // keyboard event
            InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
    
            // restartInput method will restart the current view with its updated 
            // content. here medtName is a EditText
            imm.restartInput(medtName);
    
            // toggleSoftInput will responsible for showing or hiding device
            // keyboard.
            imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
    

    【讨论】:

    • 请考虑投票而不是添加与您的答案相同的代码。干杯。 :)
    猜你喜欢
    • 1970-01-01
    • 2019-03-09
    • 2016-07-19
    • 2019-01-26
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    • 1970-01-01
    • 2016-02-20
    相关资源
    最近更新 更多