我正在使用searchView并尝试在有人调用搜索时传递一些数据。所以我覆盖了onSearchReqested方法。问题是,当有人键入SearchView并按下键盘上的放大镜时,不会调用此方法。而是开始结果 Activity 。

当有人按下放大镜时,如何在启动结果 Activity 之前调用onSearchRequested方法。

我尝试了这两个,但没有成功。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.FLAG_EDITOR_ACTION) {
        onSearchRequested();
        return false;
    }
    return false;
}

将一个监听器添加到searchview也不起作用
searchView.setOnSearchClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        onSearchRequested();

    }
});

先谢谢您的帮助。

最佳答案

setOnQueryTextListerner终于可以工作了

searchView.setOnQueryTextListener(new OnQueryTextListener() {

    @Override
    public boolean onQueryTextSubmit(String query) {
        onSearchRequested();
        return false;
    }

    @Override
    public boolean onQueryTextChange(String newText) {
        // TODO Auto-generated method stub
        return false;
    }
});

10-08 20:13