Friday, 12 June 2015

How do I close a SearchView programmatically?


//Stuff With SearchView Widget

// One Method Used for Auto Searching or When cleared Text From SearchView

searchview.setOnQueryTextListener(new SearchView.OnQueryTextListener()
{
    @Override
     public boolean onQueryTextChange(String newQueryText)
    {
    Log.d("alert","onQueryTextChange : " + newQueryText);
           //Do stuff

           hideKeyboard();            // Call to close or Remove Focus of SearchView

           return true;
    }

   // Used When Submit Button of SearchView Clicked and Searching Begin
     @Override
     public boolean onQueryTextSubmit(String query)
    {
        Log.d("alert","onQueryTextSubmit : " + query);
       //Do Stuff

         hideKeyboard();            // Call to close or Remove Focus of SearchView
        return true;
     }
}

//This Method used To catch close Event of SearchView
searchview.setOnCloseListener(new OnCloseListener()
{
@Override
public boolean onClose()
{
Log.d("alert", "closed");
          // doStuff
          hideKeyboard();            // Call to close or Remove Focus of SearchView
             
              return true;
    }
}



/**
 *    Hide Soft KeyBoard When Click on crossIcon of SearchView 
 */

private boolean hideKeyboard()
{
try
{
if(searchview.hasFocus())
{
Log.d("alert", "hiding and removing focus");
searchview.clearFocus();

searchview.setIconified(true);
             //   used to again closed searchview  after clear text from click on cross button
}

InputMethodManager imm =
        (InputMethodManager)     myContext.getSystemService(Context.INPUT_METHOD_SERVICE); 

imm.hideSoftInputFromWindow(searchview.getWindowToken(), 0);

return true;
}
catch(Exception e)
{
e.printStackTrace();
return false;
}
}

No comments:

Post a Comment