Как увольнять клавиатуру в Android SearchView?

У меня есть поиск в ActionBar. Я хочу отклонить клавиатуру, когда пользователь сделан с входом. У меня есть следующий QueryTextListener в SearchView

final SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() { 
    @Override 
    public boolean onQueryTextChange(String newText) { 
        // Do something 
        return true; 
    } 

    @Override 
    public boolean onQueryTextSubmit(String query) {

        showProgress();
        // Do stuff, make async call

        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

        return true; 
    } 
};

на основе аналогичных вопросов, следующий код должен отклонить клавиатуру, но это не работает в этом случае:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

Я также пробовал:

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(searchView.getWindowToken(), 0);

ни один не работает. Я не уверен, что это конкретная проблема сотовой связи или если она связана с SearchView в ActionBar, или оба. Кто-нибудь получил эту работу или знаю, почему он не работает?

56
задан Jonik 28 April 2015 в 13:18
поделиться