4

私は自分のアクティビティでAutoCompleteTextViewを使用していますので、Backキーを押した後でもDropDownListを常に表示する必要があります(ウィンドウ内の唯一のビューです)。私は代わりにソフトキーボードを却下する必要があります。Backキーを押した後にAutoCompleteTextViewのDropDownListを開いたままにする方法はありますか?

ActivityのonBackPressedメソッドをオーバーライドしようとしましたが、まったく使用されていないため、BackPressedイベントが "higher"のどこかで処理されています。だから、私はどこで見つけようとしましたが、AutoCompleteTextViewにはonBackPressedメソッドが定義されていません。

アドバイスはありますか?

答えて

0

あなたが試すことがあり、この

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

は、あなたがこのイベントを処理していないと、それが伝播され続けるべきであることを示すためにさらに増殖、または虚偽されることから、このイベントを防ぐためにtrueを返すことを忘れないでください。

+1

私は試みましたが、onKeyDownメソッドは呼び出されませんでした。 onBackPressedメソッドと同じです。 AutoCompleteTextViewのように見えるか、そのいずれかの部分がキープレスイベントを単独で処理しています。しかし、私はどちらがそれを見つけるか分からない。 – filipko

2

あなたはonKeyPreIme(int型のkeyCode、KeyEventのイベント)

をカスタムAutoCompleteTextViewを作成して、メソッドをオーバーライドすることができ、私はまた、この方法は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); 
} 
関連する問題