2016-04-28 10 views
0

検索を実装する最良の方法を実装したいと思います。私の活動では、2つのタブにリストの結果が表示され、ユーザーが探しているものを入力できるツールバーにsearchViewが追加されました。 whatsappのように、私の活動の上にリスト結果を表示する方法はありますか?以下はリスト結果を表示するには - searchView

enter image description here

私が持っているコードが、その基本的searchViewです。

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

     MenuItem searchItem = menu.findItem(R.id.action_search); 
     SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem); 

     searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener(){ 

      @Override 
      public boolean onQueryTextSubmit(String query) { 
       return false; 
      } 

      @Override 
      public boolean onQueryTextChange(String newText) { 
       return false; 
      } 
     }); 

     return true; 
    } 

答えて

1

私はMaterialSearchView

ステップ1

あなたのGradleへの依存関係を追加し、この依存関係を使用して、それを実装している

compile 'com.miguelcatalan:materialsearchview:1.4.0' 

ステップ2

は、ツールバーと一緒にあなたのレイアウトファイルにMaterialSearchViewを追加

<!— Must be last for right layering display —> 
    <FrameLayout 
     android:id="@+id/toolbar_container" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="@color/theme_primary" /> 

     <com.miguelcatalan.materialsearchview.MaterialSearchView 
      android:id="@+id/search_view" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 
    </FrameLayout> 

ステップ3

メニューファイルに検索項目を追加します。

<item 
     android:id="@+id/action_search" 
     android:icon="@drawable/ic_action_action_search" 
     android:orderInCategory="100" 
     android:title="@string/abc_search_hint" 
     app:showAsAction="always" /> 

ステップ4

onCreateOptionsMenuに定義を追加します。

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.menu_main, menu); 

     MenuItem item = menu.findItem(R.id.action_search); 
     searchView.setMenuItem(item); 

     return true; 
    } 

ステップ5

設定OnItemClickListener

MaterialSearchView searchView = (MaterialSearchView) findViewById(R.id.search_view); 
searchView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       //Do some magic 
      } 
     }); 
関連する問題