Выделение текста в TextView или WebView
Можно ли выделить текст в TextView
или WebView
?
Я вижу, что это возможно в EditText
Текст Highligh в EditText
Я хотел бы сделать то же самое в TextView
или WebView
.
Это возможно?
Ответы
Ответ 1
включить текстовое пространство Spashable!
по умолчанию Spannable storage в 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);
Ответ 2
Вы также можете использовать это решение для 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 для higlihting - http://www.nsftools.com/misc/SearchAndHighlight.htm
Ответ 3
Собственно, вам не нужно разрабатывать эту функцию самостоятельно. Вам просто нужно использовать EditText вместо TextView, пока вы установите для android: editable EditText значение false.
Мой ответ здесь, надеюсь, он может вам помочь:
fooobar.com/info/267497/...