21 votes

Mettre en évidence le texte dans un TextView ou un WebView

Est-il possible de mettre en évidence du texte dans un TextView o WebView ?

Je vois que c'est possible dans un EditText

Mise en évidence du texte dans un EditText

J'aimerais faire de même en TextView o WebView .
C'est possible ?

61voto

Elenasys Points 23268

Activez le stockage Spannable de TextView ! par défaut, le stockage spanable dans EditText est vrai.

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);

1voto

Elyess Abouda Points 120

Dans une WebView, cela peut se faire en recherchant les mots à mettre en évidence. Plus de détails ici.

1voto

validcat Points 1371

Vous pouvez également utiliser cette solution unique 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 en API level 16 ! !! Au lieu de cela, vous pouvez configurer JavaScript pour l'élévation - http://www.nsftools.com/misc/SearchAndHighlight.htm

0voto

KishanSolanki124 Points 966

Pour TextView

Vous pouvez utiliser textView.setTextIsSelectable(true) dans votre activité ou fragment ou adaptateur.

-1voto

Jim Watson Points 165

En fait, vous n'avez pas besoin de développer cette fonctionnalité par vous-même. Il vous suffit d'utiliser EditText au lieu de TextView, tout en définissant Android:editable de EditText à false.

Ma réponse est ici, j'espère qu'elle pourra vous aider :

https://stackoverflow.com/a/11026292/966405

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X