2014-10-19 1 views
1

Я добавил SearchView в свою деятельность и определил операцию поиска для обработки поиска. Я добавил OnQueryTextListener и вызвал метод startSearch() из метода onQueryTextSubmit(). Когда я устанавливаю глобальный поиск как true, он запускает поиск Google. Когда я устанавливаю его на false, ничего не происходит. Ниже приведен код:startSearch не запускает операцию поиска

final SearchView searchText = (SearchView) customView.findViewById(R.id.txtSearch); 
    searchText.setFocusable(true); 
    searchText.setIconifiedByDefault(false); 
    searchText.setQueryHint(SearchActivity.this.getResources().getString(R.string.search_text_hint)); 
    final SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() { 
     @Override 
     public boolean onQueryTextChange(String newText) { 
      // Do something 
      final String searchText = newText; 
      if (newText.equals("")) { 
       suggestAdapter.removeAll(); 
       suggestAdapter.notifyDataSetChanged(); 
       return true; 
      } 
      if (newText.length() < 4) { 
       return true; 
      } 
      if (!last_onTextChanged.equals(newText)) 
       onchangeHandler.removeCallbacksAndMessages(null); 
      else 
       return true; 
      last_onTextChanged = newText; 
      onchangeHandler.postDelayed(new Runnable() { 
       @Override 
       public void run() { 
        getSearchSuggestions(searchText); 
       } 
      },800); 
      return true; 
     } 

     @Override 
     public boolean onQueryTextSubmit(String query) { 
      // Do something 
      startSearch(query,true,null,false); 
      return true; 
     } 
    }; 
    searchText.setOnQueryTextListener(queryTextListener); 

Следующая определяется в пользовательских действий макете Bar custom_search_action_bar.xml

<ImageButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/abc_icon" 
     android:layout_toEndOf="@+id/txtSearch" 
     android:layout_marginEnd="20dp" 
     android:layout_marginTop="12dp" 
     android:layout_marginStart="0dp" 
     android:background="@color/logo_green" 
     android:layout_centerVertical="true" 
     android:visibility="gone" 
     android:id="@+id/ic_abc_button"/> 
     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/barcode_icon" 
      android:layout_toEndOf="@+id/txtSearch" 
      android:layout_marginEnd="20dp" 
      android:layout_marginTop="5dp" 
      android:layout_marginStart="0dp" 
      android:background="@color/logo_green" 
      android:layout_centerVertical="true" 
      android:id="@+id/ic_barcode_button"/> 
    </LinearLayout> 
</RelativeLayout> 

Следующая определяется в Рез/XML/searchable.xml

<?xml version="1.0" encoding="utf-8"?> 
<searchable xmlns:android="http://schemas.android.com/apk/res/android" 
    android:label="@string/app_name"> 
</searchable> 

И, наконец, в AndroidManifest.xml

<activity 
     android:name=".view.activity.tabsearch.SearchResultsActivity" 
     android:label="@string/title_activity_search_results" 
     android:parentActivityName=".view.activity.tabsearch.SearchActivity" 
     android:launchMode="singleTop"> 
     <intent-filter> 
      <action android:name="android.intent.action.SEARCH" /> 
     </intent-filter> 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.rayat.pricewiz.view.activity.tabsearch.SearchActivity" /> 
     <meta-data android:name="android.app.searchable" 
      android:resource="@xml/searchable"/> 
</activity> 
    <provider android:name="com.rayat.pricewiz.provider.SearchContentProvider" 
     android:authorities="com.rayat.pricewiz.provider.SearchContentProvider" /> 
</application> 

Любая помощь приветствуется

+0

любой пожалуйста !! – Noorul

+0

Вы когда-нибудь это выясняли? – Radu

+0

Нет, я закончил тем, что добавил свою собственную реализацию вручную, добавив Edittext и кнопку в панели действий и обработав поисковый запрос. Переопределите метод операции handleIntent, чтобы предотвратить активность результатов поиска, открывая для себя другой экземпляр активности. – Noorul

ответ

0

Вы бы это для вашего MainActivity в Manifest.xml

 <activity android:name="MainActivity"> 
 
     <!-- enable the search dialog to send searches to SearchableActivity --> 
 
      <meta-data android:name="android.app.default_searchable" 
 
       android:value="SearchResultsActivity" /> 
 
     </activity>

+0

Нет, я сам справляюсь с этим, а не через манифест – Noorul

Смежные вопросы