2016-08-29 2 views
0

Ich erstelle Aktivität wie auf dem Bildschirm. Ich lese viele Tutorials über SearchView in der Symbolleiste und implementierte es in meiner Aktivität und es funktioniert (Code oben). Aber wie macht man diese Drop-Down-Liste? Danke für Ideen, Links oder Code.Dropdown-Liste in SearchView

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


     MenuItem searchItem = menu.findItem(R.id.second_toolbar_search); 
     SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem); 
     SearchManager searchManager = 
       (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
     searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 
     // ... 
    } 

Activity I need to create

+0

Verwendung und Autovervollständigung Textansicht https://developer.android.com/reference/android/widget/AutoCompleteTextView.html –

+0

Verwenden Sie [diese] (https://github.com/Quinny898/PersistentSearch) Bibliothek ihre Open Source – Nikhil

+0

verwenden dies [link] (http://stackoverflow.com/a/39200200/4907554) – Manish

Antwort

0

diese Abhängigkeit in Ihrem gradle hinzufügen:

dependencies { 
    compile 'com.miguelcatalan:materialsearchview:1.0.0' 
} 

diese Hauptaktivität auf Ihrer hinzufügen:

<RelativeLayout 
    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" /> 
</RelativeLayout> 

Erstellen Sie ein Menü Datei:

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

Fügen Sie diese auf Ihre MainActivity:

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 
     } 
    }); 

Hier ist onActivityResult:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == MaterialSearchView.REQUEST_VOICE && resultCode == RESULT_OK) { 
     ArrayList<String> matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); 
     if (matches != null && matches.size() > 0) { 
      String searchWrd = matches.get(0); 
      if (!TextUtils.isEmpty(searchWrd)) { 
       searchView.setQuery(searchWrd, false); 
      } 
     } 

     return; 
    } 
    super.onActivityResult(requestCode, resultCode, data); 
} 

eine Array-Liste erstellen in String-res:

<string-array name="query_suggestions"> 
    <item>Android</item> 
    <item>iOS</item> 
    <item>SCALA</item> 
    <item>Ruby</item> 
    <item>JavaScript</item> 
</string-array> 

die Zeichenfolge res In Textbox suchen :

searchView.setSuggestions(getResources().getStringArray(R.array.query_suggestions));