SearchView不会从键盘或键盘捕获“ENTER”

时间:2017-06-24 03:11:32

标签: android

很抱歉打扰社区。但我可以在这里得到一个指针吗?我是编程和学习的新手。

我将SearchView添加到我的工具栏中,就像这样。

<item
    android:id="@+id/search"
    android:title="Search"
    android:icon="@android:drawable/ic_menu_search"
    app:actionViewClass="android.widget.SearchView"
    app:showAsAction="always" />

然后我试图从键盘或软键盘中捕获“ENTER”键,以便当有人在SearchView中输入“//做某事”时

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);

    MenuItem item = menu.findItem(R.id.search);
    SearchView searchView = (SearchView) item.getActionView();

    searchView.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {

            if (event.getAction() == KeyEvent.ACTION_DOWN)
            {
                switch (keyCode)
                {
                    case KeyEvent.KEYCODE_ENTER:

                        //do something
                        //do something
                        //do something

                        return true;
                    default:
                        break;
                }
            }

            return false;
        }
    });

    return MainActivity.super.onCreateOptionsMenu(menu);

}

但我的“//做某事”从未触发过。我可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下代码

searchView.setOnQueryTextListener(new OnQueryTextListener() {

        @Override
        public boolean onQueryTextChange(String newText) {
            //Log.e("onQueryTextChange", "==called");
            return false;
        }

        @Override
        public boolean onQueryTextSubmit(String query) {
            // Do something
            return false;
        }

    });