2012-06-13 70 views
8

Tôi thấy this question đặt tiêu điểm trên TextView EditView khi tôi kích hoạt tìm kiếm từ ActionBar. Tuy nhiên bàn phím không xuất hiện khi nó lấy nét. Phải không, vì nó chỉ là một EditText bình thường? (Đây có phải là EditText bình thường không?) Hành vi này được nhìn thấy trên Android SDK cấp 11. (Samsung Galax Tab 7.7 với Android chứng khoán.)Hiển thị bàn phím ảo trên kích hoạt thanh tác vụ tìm kiếm với SearchView

Tôi có một giải pháp tại thời điểm móc vào phương thức hoạt động của tôi, onOptionsItemSelected(MenuItem item), hiển thị bàn phím.

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     boolean menuSelectionHandeled = super.onOptionsItemSelected(item); 
     // menu_search is the id of the menu item in the ActionBar 
     if (item.getItemId() == R.id.menu_search) { 
       mInputManager.showSoftInput(null, InputMethodManager.SHOW_IMPLICIT); 
     } 
     return menuSelectionHandeled; 
    } 

Trường hợp mInputManager là phiên bản InputMethodManager.

ActionBar được tạo bằng ActionBarSherlock và vì thiết bị đích là Android 3.x nên đây có phải là nguyên nhân gây ra các triệu chứng không? Theo ActionBarSherlock của FAQ:

Các thanh tác vụ trên 3.x Android (còn gọi là Honeycomb) không thực hiện tất cả các tính năng của một trong Android 4.x (Ice Cream Sandwich ). Để cung cấp API thanh tác vụ đầy đủ trên tất cả các nền tảng cũng như thống nhất kiểu dáng trên tất cả các phiên bản của Android, việc triển khai tùy chỉnh được sử dụng.

+0

Không biết nếu điều này thực sự quan trọng nhưng tôi đã có một vấn đề khi tập tin xml của tôi chứa đựng một 'EditText' như trong các tập tin ví dụ từ ActionBarSherlock (ví dụ: i couldn không nhận được callbacks của tôi cho textchange vv để làm việc) nhưng khi tôi thay đổi đó để một 'SearchView' thay vào đó và thêm callbacks thích hợp nó chỉ bắt đầu làm việc như dự định. Có lẽ cho rằng một thử? – lfxgroove

+0

Ngoài ra, hãy xem http://stackoverflow.com/questions/11011091/how-can-i-focus-on-a-collapsible-action-view-edittext-item-in-the-action-bar-wh – lfxgroove

+0

Cảm ơn @ Câu hỏi đó khiến tôi nghĩ rằng không có cách nào để tự động hiển thị bàn phím. Anh ấy có cách giải quyết tương tự như tôi. Trong XML của tôi, tôi chắc chắn sử dụng một SearchView. Cảm ơn – Diederik

Trả lời

0

này nên làm việc:

SearchView searchView = new SearchView(getContext()); 
searchView.setInputType(InputType.TYPE_CLASS_TEXT); 
searchView.setBackgroundColor(Color.WHITE); 
Các vấn đề liên quan