Tôi có một searchView trong ActionBar. Tôi muốn loại bỏ bàn phím khi người dùng hoàn tất với đầu vào. Tôi đã sau queryTextListener trên SearchViewCách loại bỏ bàn phím trong Android 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;
}
};
Dựa trên câu hỏi tương tự, đoạn code sau nên bỏ qua bàn phím, nhưng nó không hoạt động trong trường hợp này:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Tôi cũng đã cố gắng :
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(searchView.getWindowToken(), 0);
Cả hai đều không hoạt động. Tôi không chắc chắn nếu đây là một vấn đề cụ thể Honeycomb hoặc nếu nó liên quan đến searchView trong ActionBar, hoặc cả hai. Có ai nhận được điều này làm việc hoặc biết lý do tại sao nó không hoạt động?
nơi được '' query'' định nghĩa trong ' 'onCreateOptionsMenu''? –
.. đó là chuỗi truy vấn được xác định ở nơi khác. tôi sẽ chỉnh sửa nó. Dòng đó cũng không cần thiết, chỉ khi bạn muốn điền trước truy vấn và đối số thứ hai (false) ngăn nó chạy truy vấn. – bkurzius
Cảm ơn bạn rất nhiều! searchView.clearFocus() là phần tôi thiếu cho đến bây giờ – satyadeepk