Janki Gadhiya
Janki Gadhiya

Reputation: 4510

Android SearchView get ImeOptionClick or submitButton click

I have a SearchView. This is my code:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu, menu);
    // Retrieve the SearchView and plug it into SearchManager
    final SearchView searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.action_search));
    SearchManager searchManager = (SearchManager) getSystemService(SEARCH_SERVICE);

    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
    searchView.setImeOptions(EditorInfo.IME_ACTION_NEXT);
    searchView.setSubmitButtonEnabled(true);
    searchView.setOnSearchClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            System.out.println("SEARCH");
        }
    });
    return true;
}

Question 1 :

I am very curios about how can i use the ImeOptions that i have set because i cannot find setOnEditorActionListener like EditText. Is there a way of doing it same as we do in EditText ?

Question 2 :

If question 1 is not possible then i found some property called searchView.setSubmitButtonEnabled(true); can i get this button's click ? Some thing like setOnSubmitListner ?? If not then in which sense or how the Submit can be used ??

Any suggestion Appreciable.


The motive is after typing the whole word the user will go on clicking submit button or imeNext for going to the Next word with KeyBoard not Closed..!!

Upvotes: 1

Views: 749

Answers (1)

Vishal Thakkar
Vishal Thakkar

Reputation: 2127

you can do like this

  @Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);

    SearchManager searchManager = (SearchManager) getActivity().getSystemService(Context.SEARCH_SERVICE);
    searchMenuItem = menu.findItem(R.id.action_search);
    searchView = (SearchView) searchMenuItem.getActionView();
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getActivity().getComponentName()));
    Log.i("TAG", "==>" + searchView.getQuery());
    searchView.setMaxWidth(570);
    searchView.setIconifiedByDefault(false);

    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {


        @Override
        public boolean onQueryTextSubmit(String query) {
            //searchView.setQuery("",false);
            searchView.clearFocus();
            adapter.getFilter().filter(query);
            searchText(query);//method for search text in that you can write your logic

            return true;

        }


    });   }

public void searchText(String text){//Write your logic here}

Upvotes: 2

Related Questions