2014-01-14 3 views
3

SearchView android.widget.SearchView에 여분의 데이터를 추가하는 방법?

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    super.onCreateOptionsMenu(menu, inflater) 
    SearchManager searchManager = (SearchManager) getActivity().getSystemService(Context.SEARCH_SERVICE); 
    SearchableInfo info = searchManager.getSearchableInfo(getActivity().getComponentName()); 

    SearchView searchView = (SearchView) menu.findItem(R.id.action_menu_search).getActionView(); 
    searchView.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); 
    searchView.setSearchableInfo(info); 
} 

이런 모든 것이 잘 작동 정의했습니다. 쿼리를 제출하면 새로운 의도가 발생하고 내 MainActivity에 캡처합니다. 하지만 검색 쿼리의 출처를 모르겠습니다.

android.widget.SearchView에서 나를 도울 수있는 변수 mAppSearchData을 볼 수 있지만 어떤 이유에서든 액세스 할 수 없습니다. 코드 searchView.setAppSearchData(bundle);이 컴파일되지 않습니다.

검색 데이터의 출처를 검색하기 위해 추가 데이터를 전달하는 다른 방법이 있습니까?

+1

지원 라이브러리에서 SearchView : 코드 "searchView.setAppSearchData (bundle);"를 사용하고 있습니다. 컴파일하고 작동합니다. –

답변

0

쿼리를 추가하여 쿼리와 함께 활동 이름을 보낼 수 있습니다. 쿼리가 '안녕하세요'라고 가정 해 봅시다. 'mainactivity %% hello'와 같은 것으로 추가 할 것입니다. 그런 다음 검색 활동에서 조회를 구문 분석하여 활동 이름을 검색 할 수 있습니다. 이 솔루션에는 해결 방법이 있다고 생각하십시오. 아마도 더 나은 것이있을 것입니다.

+0

제출 후 및 검색 인 텐트를 시작하기 전에 쿼리를 수정하는 방법이 있다고 생각하지 않습니다. 나는'onQueryTextSubmit'만을 오버라이드 할 수 있고 스스로 의도 론칭을 구현할 수 있습니다. –

관련 문제