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

Android 按Back键后如何保持AutoCompleteTextView的DropDownList打开?,android,event-handling,drop-down-menu,autocompletetextview,Android,Event Handling,Drop Down Menu,Autocompletetextview,我在活动中使用AutoCompleteTextView,我需要始终显示它的DropDownList(这是窗口中唯一的视图),即使在按Back键之后也是如此。我需要放弃软键盘 我试图重写Activity的onBackPressed方法,但它根本没有被使用,所以BackPressed事件被处理在“更高”的地方。所以我试图找出在哪里,但AutoCompleteTextView没有定义OnBackpress方法 有什么建议吗?你可以试试这个 @Override public boolean onKeyD

我在活动中使用AutoCompleteTextView,我需要始终显示它的DropDownList(这是窗口中唯一的视图),即使在按Back键之后也是如此。我需要放弃软键盘

我试图重写Activity的onBackPressed方法,但它根本没有被使用,所以BackPressed事件被处理在“更高”的地方。所以我试图找出在哪里,但AutoCompleteTextView没有定义OnBackpress方法

有什么建议吗?

你可以试试这个

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

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

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

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

@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);
}

我尝试过,但从未调用onKeyDown方法。与onBackPressed方法相同。看起来AutoCompleteTextView或其任何部分都在自行处理按键事件。但我不知道是哪一个。这也妨碍了完成一项活动。