如何检测SearchView上的任何位置的单击

时间:2015-06-27 22:20:15

标签: android searchview

如何检测searchView上的点击?

我尝试过使用setOnClickListener,setOnSearchClickListener,setOnFocusChangedListener,但无济于事。

问题似乎只是点击文本框。如果我单击文本框onClickListener触发器之外的任何位置,但是如果在文本框内单击则不会。

我想解决的问题是,如果用户点击任何地方,我需要关闭。但我不知道如何处理SearchView。

2 个答案:

答案 0 :(得分:2)

我设法找到解决问题的方法。 它有点hackish,但它的工作原理。您必须从searchView获取editText并将OnClickListener设置为

    int id = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
    EditText editText = (EditText) searchView.findViewById(id);
    editText.setOnClickListener(listener);

答案 1 :(得分:0)

尝试一下:

searchView = (SearchView)findViewById(R.id.searchView);
searchView.setOnClickListener(new View.OnClickListener() {
         @Override
     public void onClick(View v) {
         searchView.setIconified(false);
     }
 });