ak7483
ak7483

Reputation: 187

How to detect a click anywhere on a SearchView

How to detect a click on searchView?

I have tried using setOnClickListener, setOnSearchClickListener, setOnFocusChangedListener, but to no avail.

The problem seems to be only click on textbox. If I click anywhere outside of textbox onClickListener triggers, but not if click inside the textbox.

The problem that I am trying to solve is that I need to close a if user clicks anywhere. But I dont know how to handle the SearchView.

Upvotes: 6

Views: 4577

Answers (4)

JeffBozo
JeffBozo

Reputation: 70

Try adding app:iconifiedByDefault="false" to the SearchView tag in your layout XML.

Upvotes: 0

iOS_Mouse
iOS_Mouse

Reputation: 844

An answer from a similar question: How to detect if SearchView is expanded?

searchView.setOnQueryTextFocusChangeListener { _ , hasFocus ->
    if (hasFocus) {
        // searchView expanded
    } else {
        // searchView not expanded
    }
}

Upvotes: -1

prashant pol
prashant pol

Reputation: 19

Try this:

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

Upvotes: 1

ak7483
ak7483

Reputation: 187

I have managed to find a way to solve my problem. It's a bit hackish, but it works. You have to get the editText from searchView and set OnClickListener to it

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

Upvotes: 4

Related Questions