0

SearchViewウィジェットを使用してListViewのテキストを検索しています。
テキストを入力すると、仮想キーボードが開きます。「スパイグラスキー」を押して検索を繰り返したい。
仮想キーボードのキーイベントをインターセプトするにはどうすればよいですか?

注:右下の仮想キーボードにあるスパイグラスキーと、SearchViewウィジェットのスパイグラスアイコンを混同しないでください。

私が試したことをお話ししますので、うまくいかないことがわかります。

  • SearchViewのonQueryTextChange()
  • SearchViewのonKeyListener()
  • SearchViewのTextWatcher()
  • ListViewのdispatchKeyEvent()
4

1 に答える 1

2

これが私が求める解決策です。
「スパイグラスキー」(KEYCODE_ENTERと同じだと思います)のKeyEVentを取得する方法がわからないので、SearchViewの送信ボタンを有効にするだけで、毎回電話がかかってきますonQueryTExtSubmit()。クリックされます(onQueryTextListenerのメソッド)。

    sv = (SearchView) findViewById(R.id.viewer_search);
    sv.setOnQueryTextListener(searchListener);
    sv.setSubmitButtonEnabled(true);
    sv.setIconifiedByDefault(false);

private OnQueryTextListener searchListener = new OnQueryTextListener() {

    @Override
    public boolean onQueryTextSubmit(String query) {
        // do my stuff
        return true; 
    }

    . . .
于 2013-02-27T11:49:26.730 に答える