Я разрабатываю приложение, в котором будет поисковый экран, где пользователь может искать определенные ключевые слова, и то ключевое слово должно быть выделено. Я нашел метод Html.fromHtml.
Но мне понравится знать, является ли это надлежащим способом сделать его или нет.
Сообщите мне свои представления об этом.
Или гораздо проще, чем работать с Spannable
s вручную, поскольку вы не сказали, что хотите выделить фон, только текст:
String styledText = "This is <font color='red'>simple</font>.";
textView.setText(Html.fromHtml(styledText), TextView.BufferType.SPANNABLE);
Это может быть достигнуто с помощью Spannable String. Вам нужно будет импортировать следующее
import android.text.SpannableString;
import android.text.style.BackgroundColorSpan;
import android.text.style.StyleSpan;
И затем вы можете изменить фон текста, используя что-то вроде следующего:
TextView text = (TextView) findViewById(R.id.text_login);
text.setText("");
text.append("Add all your funky text in here");
Spannable sText = (Spannable) text.getText();
sText.setSpan(new BackgroundColorSpan(Color.RED), 1, 4, 0);
Где это выделит символы в позициях 1–4 красным цветом. Надеюсь это поможет!
Альтернативное решение: вместо этого используйте WebView. С HTML легко работать.
WebView webview = new WebView(this);
String summary = "<html><body>Sorry, <span style=\"background: red;\">Madonna</span> gave no results</body></html>";
webview.loadData(summary, "text/html", "utf-8");