如何在按下后退键后保持AutoCompleteTextView的DropDownList打开?
问题描述:
我在我的Activity中使用了AutoCompleteTextView,我需要它的DropDownList被一直显示(它是窗口中唯一的View),即使在Back键按下后也是如此。我需要取消软键盘。如何在按下后退键后保持AutoCompleteTextView的DropDownList打开?
我试着重写Activity的onBackPressed方法,但它根本没有使用,所以BackPressed事件正在处理“更高”的地方。所以我试图找出在哪里,但AutoCompleteTextView没有定义onBackPressed方法。
任何建议?
答
你可以试试这个
@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的事件)
我也意识到,这种方法被称为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);
}
我试过,但onkeydown事件方法不会被调用。与onBackPressed方法相同。看起来像AutoCompleteTextView或它的任何部分是自己处理按键事件。但我找不到哪一个。 – filipko 2012-03-15 15:37:29