如何显示列表结果 - searchView

时间:2016-04-28 15:10:05

标签: android searchview

我想实现实现搜索的最佳方式。在我的活动中,我有两个带有列表结果的选项卡,我在工具栏中添加了一个searchView,用户可以在其中键入他要查找的内容。有没有办法在我的活动上方显示列表结果,如whatsapp?

http://apidock.com/rails/ActiveRecord/QueryMethods/includes

下面是我的代码,但它基本上是一个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 个答案:

答案 0 :(得分: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 
            }
        });