2013-02-13 49 views
5

Tôi có SearchView mà trông như thế này:Android SearchView onclick

private void setupSearchView() { 
    mSearchView = (SearchView) getActivity().findViewById(
      R.id.search_view_neue); 
    setSearchViewBackground(); 
    mSearchView.setOnClickListener(this); 
    mSearchView.setOnQueryTextListener(this); 
} 




    public boolean onQueryTextSubmit(String query) { 
    searchcounter = searchcounter + 1; 

    setSearchViewBackground(); 
    ArrayList<WissensdokumenteRecord> documents = settingListContent(new ArrayList<WissensdokumenteRecord>()); 

    setListAdapter(new NeueWissensdokumentItemAdapter(
      inflater.getContext(), R.layout.row_example, documents)); 
    InputMethodManager im = (InputMethodManager) getActivity() 
      .getSystemService(Context.INPUT_METHOD_SERVICE); 
    im.hideSoftInputFromWindow(getActivity().getCurrentFocus() 
      .getWindowToken(), 0); 

    return false; 
} 




<SearchView 
    android:id="@+id/search_view_neue" 
    android:layout_width="match_parent" 
    android:layout_height="60dp" 
    android:layout_marginLeft="40dp" 
    android:layout_marginRight="40dp" 
    android:background="@drawable/border_searchview" 
    android:maxWidth="540dp" 
    android:queryHint="Neue Dokumente suchen" > 
</SearchView> 

Vì vậy, hành vi của các quan điểm tìm kiếm là, rằng bàn phím mở bằng cách nhấn vào tìm kiếm button.Now Tôi có thể tìm kiếm một cái gì đó. Có thể thực hiện tìm kiếm bằng cách nhấp vào trong chế độ xem tìm kiếm ở mọi nơi không? Có ai có một ví dụ cho tôi?

Best wishes Christine

+0

Có được câu trả lời tốt http://stackoverflow.com/questions/14602807/android-how-to-detect-click-on-custom-searchview-element –

Trả lời

0

Tôi không thấy lý do tại sao bạn cần phải thiết lập OnClickListener trên đó. Bằng cách nhấp vào một SearchView, bạn sẽ cập nhật con trỏ văn bản. Để thực hiện tìm kiếm bạn có một hành động IME bàn phím. Nếu nhấp vào nó sẽ thực hiện tìm kiếm nó sẽ không thể thay đổi con trỏ, vv Nó là hành vi nói chung sai để làm một cái gì đó khác hơn con trỏ tập trung/cập nhật trong các lĩnh vực văn bản.

Theo như tôi nhớ - bạn không cần phải ẩn bàn phím trong OnQueryTextListener. Nó sẽ tự động hite. Xử lý tìm kiếm của bạn trong OnQueryTextSubmit

search with Sherlock ActionBar SearchView setOnKeyListener

7

tôi quản lý để thực hiện điều này theo cách sau:

Thiết lập các điểm tìm kiếm trên nhấp chuột nghe

mSearchView.setOnClickListener(this); 

Săn kiện onClick:

@Override 
public void onClick(View v) { 
    switch (v.getId()) { 
     case R.id.searchView: 
      mSearchView.onActionViewExpanded(); 
      break; 
    } 
} 

Bằng cách này, bàn phím và bàn phím ch được kích hoạt nếu bạn nhấp vào antwhere trên thanh tìm kiếm.

+0

phản ứng này có thể được đánh dấu là chấp nhận –

0

tôi phải đề nghị sử dụng setOnSearchClickListener listner để phát hiện SearchView nhấp chuột như Theo Android docs:

setOnSearchClickListener

trống setOnSearchClickListener (View.OnClickListener nghe)

Thiết lập một người biết lắng nghe để thông báo khi nút tìm kiếm được nhấn.

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater menuInflater = getMenuInflater(); 
    menuInflater.inflate(R.menu.orders_menu, menu); 
    MenuItem searchItem = menu.findItem(R.id.action_search); 
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 

    if (searchView != null) { 
     searchView = (SearchView) searchItem.getActionView(); 
     searchView.setOnSearchClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       //perform your click operation here 
      } 
     }); 
    return true; 
} 
2

Điều này sẽ làm chính xác những gì bạn đang cố gắng đạt được. setIconified(false) sẽ giữ biểu tượng chéo ở cuối Chế độ xem tìm kiếm này để người dùng vẫn có thể hủy cùng một cách như khi kính lúp được nhấp.

searchView.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     searchView.setIconified(false); 
    } 
}); 
Các vấn đề liên quan