2014-10-10 14 views
13

Tôi có một SearchView. Khi người dùng nhấp vào nút tìm kiếm bàn phím, tôi cần thực hiện cuộc gọi máy chủ. Mã cho người nghe trông như thế nào? Tôi nghĩ tôi phải sử dụng OnClickListener. Nhưng mã nội bộ cho biết đó là nút tìm kiếm, tôi không chắc chắn làm thế nào để xác định điều đó.cách nghe nút tìm kiếm bàn phím trong searchView

+0

Nó sẽ gửi chìa khóa KeyEvent # KEYCODE_SEARCH do đó bạn sẽ tìm kiếm điều đó với một onKeyEventListener hoặc hoạt động của dispatchKeyEvent – DeeV

+0

@DeeV Các tài liệu nói rằng onKeyEventListener là chìa khóa cho phần cứng. Tại sao nó sẽ cụ thể nói phần cứng nếu nó áp dụng như nhau cho bàn phím mềm? Trong mọi trường hợp, tôi sẽ thử nó vì bạn nói đó là câu trả lời. – learner

+0

@DeeV Tôi đã thử trênEditorActionListener trước khi đặt câu hỏi. Nhưng SearchView không nhận ra nó. – learner

Trả lời

50

Tôi đã làm như thế này

các onQueryTextSubmit là phương pháp bạn đang tìm kiếm.

đặt setOnQueryTextListener trên chế độ xem tìm kiếm của bạn.

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 

    MenuItem searchItem = menu.findItem(R.id.search_city); 
    searchView = (SearchView) searchItem.getActionView(); 
    searchView.setQueryHint("Search View Hint"); 

    searchView.setOnQueryTextListener(new OnQueryTextListener() { 

     @Override 
     public boolean onQueryTextChange(String newText) { 
      //Log.e("onQueryTextChange", "called"); 
      return false; 
     } 

     @Override 
     public boolean onQueryTextSubmit(String query) { 


      // Do your task here 

      return false; 
     } 

    }); 

    return true; 
} 

niềm hy vọng này giúp

+1

Yay! Ok bạn đã đánh tôi với câu trả lời. Tôi sẽ bỏ phiếu! –

Các vấn đề liên quan