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

Hi texte dans un EditText

j'aimerais faire la même chose dans TextView ou WebView .

C'Est Possible?

20
demandé sur Community 2010-01-22 22:51:28

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);
57
répondu Jorgesys 2014-01-02 18:00:36

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

1
répondu validcat 2013-10-28 11:00:35

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:

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

0
répondu Ruobin Wang 2017-05-23 12:25:13