4

我在我的Activity中使用了AutoCompleteTextView,我需要它的DropDownList被一直显示(它是窗口中唯一的View),即使在Back键按下后也是如此。我需要取消软键盘。如何在按下后退键后保持AutoCompleteTextView的DropDownList打开?

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

任何建议?

回答

0

你可以试试这个

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

记得返回true,以防止该事件被进一步传播,或false,表示你已经不处理该事件,并应继续传播。

+1

我试过,但onkeydown事件方法不会被调用。与onBackPressed方法相同。看起来像AutoCompleteTextView或它的任何部分是自己处理按键事件。但我找不到哪一个。 – filipko 2012-03-15 15:37:29

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); 
} 
相关问题