Search code examples
androidsearchviewsearchable

Searchable SearchView setSuggestionsAdapter() in android studio


I'm working on an app. It requires a searchview. im facing a problem while working with cursor adaptor. i simply want a string array or xml string array to displayed in suggestion adaptor. when i click on search button it show suggestion and on suggestion click it do given work. i need codes that will help me sort out this problem. I'm not a professional programmer.


Solution

  • You can achieve Using SearchAutoComplete view,try something below like this

          @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>
    

    suggetion.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"/>
    

    I hope this may help you,All the best.