android - android studio 中可搜索的SearchView setSuggestionsAdapter()

标签 android searchview searchable

我正在开发一个应用程序。它需要一个搜索 View 。我在使用光标适配器时遇到问题。我只想在建议适配器中显示一个字符串数组或 xml 字符串数组。当我单击搜索按钮时,它会显示建议,并根据建议单击它执行给定的工作。 我需要代码来帮助我解决这个问题。我不是专业程序员。

最佳答案

您可以使用SearchAutoComplete View 来实现,尝试下面这样的操作

      @Override
        public boolean onCreateOptionsMenu(Menu menu) {

           getMenuInflater().inflate(R.menu.activity_main_menu, menu);
           searchMenuItem = menu.findItem(R.id.action_search)

           searchView = (SearchView) searchMenuItem.getActionView();
           searchAutoComplete = (SearchView.SearchAutoComplete) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);

           SearchManager searchManager =
                            (SearchManager) getSystemService(this.SEARCH_SERVICE);
                    searchView.setSearchableInfo(
                            searchManager.getSearchableInfo(getComponentName()));

           ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.suggetion, jsonArrayList);

                    // jsonarraylist is static string array

           searchAutoComplete.setAdapter(adapter);

           searchAutoComplete.setOnItemClickListener(new AdapterView.OnItemClickListener() {
           @Override
           public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                          // Your code for onitemclick
           }
        }

activity_main_menu.xml

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto">

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

建议.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    style="?android:attr/dropDownItemStyle"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:background="@color/colorAccent"
    android:textAppearance="?android:attr/textAppearanceLargePopupMenu"/>

希望对你有帮助,祝你一切顺利。

关于android - android studio 中可搜索的SearchView setSuggestionsAdapter(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45253917/

相关文章:

android - android SearchView 的搜索类型是什么?

android - 使用FFMPEG4ANDROID压缩视频后视频不清晰

在 ListView 中使用 ratingbar 的 android 必需示例

java - 我的 android 应用程序在我加载对话框时第二次崩溃

android - 在 Android 中动态更改应用程序图标文本

Android:getSearchableInfo(getComponentName())返回空值?

android - 如何更改/删除 SearchView 建议中的时钟图标

grails - 如何使用Grails可搜索(lucene)以最有效的方式执行等效的Criteria查询

plugins - Grails可搜索插件:无限结果

java - 如何使用 Solr 或 Searchable 搜索域对象及其指向的物理文件