【问题标题】:How to trigger back button event used to hide inbuilt keyboard?如何触发用于隐藏内置键盘的后退按钮事件?
【发布时间】:2013-04-16 18:04:57
【问题描述】:

我想知道按下后退按钮隐藏内置键盘时触发的事件。我想在按下后退按钮隐藏键盘时在布局中添加一个视图。我还在键盘的 ENTER 键时添加一个视图按下但我也想在按下后退按钮隐藏键盘时做同样的事情。我尝试过的都在这里。

public boolean onKey(View v, int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        switch (keyCode) {
        case KeyEvent.KEYCODE_DPAD_CENTER:
        case KeyEvent.KEYCODE_ENTER:

            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0);
            String string = text.getText().toString();
            if (string.trim().equals("")) {
                image_view.removeView(text);
            } else {

                text.setCursorVisible(false);
                text.setDrawingCacheEnabled(true);
                text.buildDrawingCache();

                Bitmap bmp_text = Bitmap.createBitmap(text
                        .getDrawingCache());
                view = new ZoomRotateImage(ImageEditing.this, bmp_text);
                text.setDrawingCacheEnabled(false);
                image_view.removeView(text);
                image_view.addView(view);
                getUpdatedImage();
            }
            return true;

        default:
            break;
        }
    }
    return false;
}

它工作正常..现在我只想在按下后退按钮以隐藏键盘时实现相同的功能。

提前谢谢...

【问题讨论】:

标签: android keyboard back


【解决方案1】:

按下设备后退按钮获取事件并隐藏软键盘,如下所示:

 @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
        // hide keyboard here
                  InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
                 imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
    } else
        return;

}

【讨论】:

  • 它应该可以工作@Meghs,因为我正在为我的应用程序做同样的事情。没有得到 onKeyDown 事件...你调试过它吗?将断点放在第一行并检查...
  • 当我们按下返回按钮时,键盘会自动隐藏。因此无需编写代码来隐藏它。我正在使用此事件来显示 Toast。但它没有。
  • Toast.makeText(this, "Back Key Pressed", 4000).show();你是这样放的吗???
猜你喜欢
  • 1970-01-01
  • 2012-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-16
  • 1970-01-01
  • 2013-03-21
相关资源
最近更新 更多