2016-02-19 2 views
0

Привет, я хочу реализовать функцию поиска в своем приложении над панелью инструментов. В настоящее время я добавил элемент SearchView в Activity_main.xml, но я не знаю, как реализовать оставшуюся логику. Пожалуйста, руководство мне решить этотВнедрить searchview в панели инструментов в android

<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="#99CC33" 
    android:id="@+id/toolbar" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    app:title="@string/app_name"> 
     <SearchView 
     android:id="@+id/mySearchView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:iconifiedByDefault="true" 
     android:layout_gravity="end" 
     android:queryHint="Search by name"/> 
</android.support.v7.widget.Toolbar> 

мой AndroidManifest.xml является

<application 
    android:allowBackup="true" 
    android:icon="@drawable/splash_img" 
    android:label="Call Logger" 
    android:theme="@style/AppTheme" > 
    <!-- Splash screen --> 
    <activity 
     android:name="com.comforters.callLogger.SplashScreen" 
     android:label="@string/app_name" 
     android:screenOrientation="portrait" 
     android:theme="@android:style/Theme.Black.NoTitleBar" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <!-- Main activity --> 
    <activity 
     android:name="com.comforters.callLogger.MainActivity" 
     android:label="Call Logger" > 
    </activity> 

    <receiver android:name=".PhonecallReceiver" > 
     <intent-filter> 
      <action android:name="android.intent.action.PHONE_STATE" /> 
     </intent-filter> 
     <intent-filter> 
      <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> 
     </intent-filter> 
    </receiver> 
</application> 
+0

какую логику вы хотите? Вы пробовали Google? Здесь никто не собирается писать логику. – Ritesh

+0

Спасибо Ritesh, я не хочу полный код, мне нужно только пошаговая информация, что мне нужно делать –

ответ

0

Создайте пункт меню внутри папки меню сказать/основные/разрешение/меню имеет следующие

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
tools:context=".MainActivity"> 

<item 
    android:id="@+id/action_search" 
    android:icon="@drawable/ic_action_search" 
    android:title="@string/action_search" 
    app:showAsAction="collapseActionView|always" 
    app:actionViewClass="android.support.v7.widget.SearchView" /> 

</item> 

Это меню должно быть связано с деятельностью, которая будет обрабатывать поиск. В вашей деятельности есть что-то вроде этого

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.menu_activity_main, menu); 
    super.onCreateOptionsMenu(menu, inflater); 


    SearchManager searchManager = (SearchManager) getActivity().getSystemService(Context.SEARCH_SERVICE); 
    MenuItem searchItem = menu.findItem(R.id.action_search); 
    SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem); 

    searchView.setSearchableInfo(searchManager.getSearchableInfo(context.getComponentName())); 
    searchView.setIconifiedByDefault(false); 

    SearchView.OnQueryTextListener textChangeListener = new SearchView.OnQueryTextListener() 
    { 
     @Override 
     public boolean onQueryTextChange(String query) 
     { 
      adapter.getFilter().filter(query); 
      return true; 
     } 
     @Override 
     public boolean onQueryTextSubmit(String query) 
     { 
      adapter.getFilter().filter(query); 
      return true; 
     } 
    }; 
    searchView.setOnQueryTextListener(textChangeListener); 
} 

Тогда в адаптере реализацию фильтрации логики, это будет зависеть от того, что вы ищете, а также о том, как данные представлены

Надеются, что это указует вам в праве направление

+0

Спасибо Jaymo, я попробую и дам вам знать –

+0

Если бы вы считали это полезным, вы можете повысить свой ответ. благодаря –

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