2017-02-02 6 views
0

Ich habe ein Programm, das Elemente in der Datenbank speichert, und ich möchte eine Suche für diese Elemente machen. Datenbankelemente haben einen Namen und eine Reihe von Tags, die mit ihnen verknüpft sind (Diese Tags, um genau zu sein: https://android-arsenal.com/details/1/2566). In der Suchansicht möchte ich alle Elemente in der Datenbank auflisten und innerhalb derselben Ansicht die Ergebnisse nach Name filtern, indem ich die Eingabe in editText und die Tags verwende, indem ich die verfügbaren Tags als Tag-Cloud zeige. Kennt jemand ein Beispiel oder Tutorial, in dem eine ähnliche Suchstruktur implementiert worden wäre?Android: Suche aus listView mit editText und benutzerdefinierten Tags

+0

was hast du probiert? –

+0

Noch nichts, da ich wirklich nicht weiß, wo ich anfangen soll. – Namiskuukkwl

+0

Um Downvote zu vermeiden, versuchen Sie bitte, Ihren Versuch zu erklären, bevor Sie nach Antworten fragen und versuchen Sie, genau zu sein. Wir sind hier, um Sie zu führen, um die gesamte User Story nicht zu lösen. Wenn ich Sie als neu in der Gemeinschaft betrachte, werde ich Ihnen eine positive Bewertung geben, um Ihren Reputationsverlust auszugleichen, da ich möchte, dass Sie Ihre Anfragen in Zukunft weiter posten. –

Antwort

0

Dies ist ein Code-Snippet, mit dem Sie die einfache Suchfunktion bei Änderung von Texttext implementieren können. Hoffe, du bekommst eine Idee

searchInput.addTextChangedListener(new TextWatcher() { 

    @Override 
    public void afterTextChanged(Editable s) { 

     if (!s.toString().isEmpty()) { 

      CenterRepository.getInstance().getSearchResultCollection().getListOfSearchResult().clear(); 

      //Iterate over reference models 
      for (ReferenceModel model : 
        CenterRepository.getInstance().getXRefModelCollection().getListOfReferenceModels()) { 

       //if serach key is present in model name or model number 
       if (model.getModelName().toLowerCase().contains(s.toString()) || model.getModelNumber().toLowerCase().contains(s.toString())) { 

        //add to search collection 
        CenterRepository.getInstance().getSearchResultCollection().addToSearchResultsCollection(model); 
       } 
      } 

      //display search results 
      renderListData(true); 

     } else { 

      //display all models 
      renderListData(false); 
     } 
    } 

    @Override 
    public void beforeTextChanged(CharSequence s, int start, 
            int count, int after) { 
    } 

    @Override 
    public void onTextChanged(CharSequence s, int start, 
           int before, int count) { 

    } 
}); 
Verwandte Themen