Est-il possible de surligner du texte dans une variable TextView
ou WebView
?
Je vois que c'est possible dans une EditText
Surligner du texte dans un EditText
J'aimerais faire la même chose dans TextView
ou WebView
.
C'est possible?
activer le stockage de Spannable de TextView! par défaut Le stockage de Spannable dans EditText est true.
alors
TextView myTV = (TextView)findViewById(R.id.textView1);
String textString = "StackOverFlow Rocks!!!";
Spannable spanText = Spannable.Factory.getInstance().newSpannable(textString);
spanText.setSpan(new BackgroundColorSpan(0xFFFFFF00), 14, 19, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
myTV.setText(spanText);
Vous pouvez également utiliser cette solution pour WebView
. Appelez findAllAsync
webview.findAllAsync(((EditText) findViewById(R.id.edit)).getText().toString());
que d'ajouter FindListener
à WebView
webview.setFindListener(new FindListener() {
@Override
public void onFindResultReceived(int activeMatchOrdinal, int numberOfMatches, boolean isDoneCounting) {
Toast.makeText(getApplicationContext(), "Matches: " + numberOfMatches, Toast.LENGTH_LONG).show();
}
});
Itérer dans le résultat avec webview.findNext(false);
où false/true indique la direction.
Mais cette solution a été ajoutée dans API level 16
!!! Au lieu de cela, vous pouvez configurer JavaScript pour higlihting - http://www.nsftools.com/misc/SearchAndHighlight.htm