按Back键后如何保持AutoCompleteTextView的DropDownList打开?

时间:2012-03-15 14:52:51

标签: android event-handling drop-down-menu autocompletetextview

我在我的Activity中使用AutoCompleteTextView,我需要它的DropDownList一直显示(它是Window中唯一的View),即使在Back键按下之后也是如此。我需要取消软键盘。

我试图覆盖Activity的onBackPressed方法,但它根本没用,所以BackPressed事件正在“更高”的某处处理。所以我试图找出它的位置,但AutoCompleteTextView没有定义onBackPressed方法。

有任何建议吗?

2 个答案:

答案 0 :(得分:2)

您可以创建自定义AutoCompleteTextView并覆盖onKeyPreIme方法(int keyCode,KeyEvent事件)

我也意识到这个方法被调用了2次,我只在第二次运行我的代码。这是一个例子:

@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == 1) {
        //add your code here
        return true;
    }
    return super.onKeyPreIme(keyCode, event);
}

答案 1 :(得分:0)

你可以试试这个

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
            //Your back key press logic
    }
    return true;
}

请记住返回true以防止此事件被进一步传播,或者返回false以指示您尚未处理此事件并且应继续传播该事件。