Android搜索功能使用操作栏

时间:2016-06-13 07:37:33

标签: android listview searchview android-searchmanager

如何在操作栏中实现类似搜索功能的YouTube应用程序,如何从服务器动态搜索字符串并在列表视图中显示。我不知道如何在其中添加动态搜索功能,这是服务器的响应。

3 个答案:

答案 0 :(得分:0)

步骤1

如果搜索结果有更多内容,则必须实施 onTextChange 调用服务器,并检索 列表作为文本更改

如果您有小列表,则可以检索活动的整个列表开始

步骤2

AutoCompleteTextView 的适配器中设置数据。

答案 1 :(得分:0)

这正是您所寻求的,请尝试使用MaterialSearchView

MaterialSearchView searchView = (MaterialSearchView) findViewById(R.id.search_view);
    searchView.setOnQueryTextListener(new MaterialSearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                //Do some magic
                return false;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                //Do some magic
                return false;
            }
        });

        searchView.setOnSearchViewListener(new MaterialSearchView.SearchViewListener() {
            @Override
            public void onSearchViewShown() {
                //Do some magic
            }

            @Override
            public void onSearchViewClosed() {
                //Do some magic
            }
        });

答案 2 :(得分:0)

您可以使用this库。

代码:

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_search: {
                mSearchView.show(true/false); // animate, ONLY FOR MENU ITEM
                return true;
            }
            default:
                return super.onOptionsItemSelected(item);
        }
    }

XML:

<com.lapism.searchview.SearchView
    android:id="@+id/searchView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

样式化SearchView:

       <attr name="search_version" format="enum">
           <enum name="toolbar" value="1000" />
           <enum name="menu_item" value="1001" />
       </attr>
       <attr name="search_version_margins" format="enum">
            <enum name="toolbar_small" value="2000" />
            <enum name="toolbar_big" value="2001" />
            <enum name="menu_item" value="2002" />
        </attr>
        <attr name="search_theme" format="enum">
            <enum name="light" value="3000" />
            <enum name="dark" value="3001" />
        </attr>
        <attr name="search_icon_color" format="color" />
        <attr name="search_background_color" format="color" />
        <attr name="search_text" format="string" />
        <attr name="search_text_color" format="color" />
        <attr name="search_text_size" format="dimension" />
        <attr name="search_hint" format="string" />
        <attr name="search_hint_color" format="color" />
        <attr name="search_divider" format="boolean" />
        <attr name="search_voice" format="boolean" />
        <attr name="search_voice_text" format="string" />
        <attr name="search_animation_duration" format="integer" />
        <attr name="search_shadow" format="boolean" />
        <attr name="search_shadow_color" format="boolean" />
        <attr name="search_elevation" format="dimension" />