Mettre en surbrillance le texte dans TextView ou WebView
est-il possible de mettre en surbrillance un texte dans un TextView
ou WebView
?
je vois que c'est possible dans un EditText
j'aimerais faire la même chose dans TextView
ou WebView
.
C'Est Possible?
3 réponses
activez le stockage de TextView! par défaut, le stockage de Spannable dans EditText est true.
donc
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
. Appel findAllAsync
webview.findAllAsync(((EditText) findViewById(R.id.edit)).getText().toString());
que l'ajout de 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 vous pouvez configurer JavaScript pour higlihting - http://www.nsftools.com/misc/SearchAndHighlight.htm
en Fait, vous n'avez pas à développer cette fonction par vous-même. Vous avez juste besoin d'utiliser EditText à la place de TextView, pendant que vous définissez l'android:editable de EditText à false.
ma réponse est ici, j'espère qu'elle peut vous aider: