Markieren Sie gesuchter Text in ListView-Elementen

Bildbeschreibung hier eingeben

Ich habe eine ListView und ich benutze einen benutzerdefinierten Adapter, um Daten ListView . Jetzt möchte ich die gesuchte Textbrieffarbe ändern, wie im obigen Screenshot.

  • Wie bekomme ich aktuelle Datum Zeit in Millisekunden in Android
  • Ereignisse aus dem Kalender abrufen
  • Abhängigkeit ignoriert wegen Konflikt Android Studio
  • React-Native unnötige Android User-Berechtigungen automatisch hinzugefügt auf Build?
  • Android BroadcastReceiver, Auto-Run-Service nach einem Neustart des Geräts
  • Wie bekomme ich Cookies und Cache von Webview auf Android, wenn nicht in Webview?
  • Hier ist der Code für SearchView

     @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.actionbar_menu_item, menu); SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); final SearchView searchView = (SearchView) menu.findItem(R.id.action_search) .getActionView(); searchView.setSearchableInfo(searchManager .getSearchableInfo(getComponentName())); searchView.setOnQueryTextListener(this); return super.onCreateOptionsMenu(menu); } public boolean onQueryTextChange(String newText) { // this is adapter that will be filtered if (TextUtils.isEmpty(newText)){ lvCustomList.clearTextFilter(); } else{ lvCustomList.setFilterText(newText.toString()); } return false; } @Override public boolean onQueryTextSubmit(String query) { return false; } 

    Vielen Dank.

  • Wie bekomme ich Metadaten aus einem Bild?
  • Senden von Daten über Kopfhörer-Buchse in Android-Handys
  • Androide Prise Zoom
  • Android startet die Systemeinstellungen anstelle meiner App
  • Wie deaktiviere ich eine Android-Taste?
  • Android: Veröffentlichen Sie eine App mit verschiedenen Screenshots, die verschiedenen Sprachen entsprechen?
  • One Solution collect form web for “Markieren Sie gesuchter Text in ListView-Elementen”

    Ich getCount() davon aus, dass Sie einen benutzerdefinierten Adapter mit getCount() und getView() implementiert haben und bereits Elemente filtern und Sie brauchen nur den fetten Teil.

    Um dies zu erreichen, müssen Sie einen SpannableString , der im Grunde Text mit Markup verbunden ist. Zum Beispiel kann ein TextAppearanceSpan verwendet werden, um Schriftart, Schriftart, Größe und Farbe zu ändern.

    So solltest du den getView() des Adapters getView() , um den Teil zu ändern, in dem du textView.setText() in etwas mehr oder weniger wie textView.setText() :

     String filter = ...; String itemValue = ...; int startPos = itemValue.toLowerCase(Locale.US).indexOf(filter.toLowerCase(Locale.US)); int endPos = startPos + filter.length(); if (startPos != -1) // This should always be true, just a sanity check { Spannable spannable = new SpannableString(itemValue); ColorStateList blueColor = new ColorStateList(new int[][] { new int[] {}}, new int[] { Color.BLUE }); TextAppearanceSpan highlightSpan = new TextAppearanceSpan(null, Typeface.BOLD, -1, blueColor, null); spannable.setSpan(highlightSpan, startPos, endPos, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); textView.setText(spannable); } else textView.setText(itemValue); 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.