Выделите текст в TextView или WebView - PullRequest
20 голосов
/ 22 января 2010

Можно ли выделить текст в TextView или WebView?

Я вижу, что это возможно в EditText

Выделение текста в EditText

Я бы хотел сделать то же самое в TextView или WebView.
Это возможно?

Ответы [ 3 ]

59 голосов
/ 22 января 2010

включить Spannable хранилище TextView! По умолчанию Spannable хранилище в EditText имеет значение true.

так

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);
0 голосов
/ 28 октября 2013

Также вы можете использовать это одно решение для WebView. Звоните findAllAsync

webview.findAllAsync(((EditText) findViewById(R.id.edit)).getText().toString());

чем добавить 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();
        }
    });

Повторять результат с webview.findNext(false);, где false / true показывает направление.

Но это решение было добавлено в API level 16 !!! Вместо этого вы можете настроить JavaScript для высоких показателей - http://www.nsftools.com/misc/SearchAndHighlight.htm

0 голосов
/ 14 июня 2012

На самом деле вам не нужно разрабатывать эту функцию самостоятельно. Вам просто нужно использовать EditText вместо TextView, пока вы устанавливаете для android: editable of EditText значение false.

Мой ответ здесь, надеюсь, он может вам помочь:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...