在TextView或WebView中突出显示文本

时间:2010-01-22 19:51:28

标签: android android-widget

是否可以突出显示TextViewWebView

中的文字

我在EditText

中看到了这种情况

Highligh text in a EditText

我想在TextViewWebView中执行相同操作 那可能吗?

4 个答案:

答案 0 :(得分:59)

启用TextView的Spannable存储! 默认情况下,EditText中的Spannable存储为真。

所以

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

答案 1 :(得分:0)

同样,您可以将此解决方案用于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

答案 2 :(得分:0)

对于TextView

您可以在您的活动或片段或适配器中使用 textView.setTextIsSelectable(true)

答案 3 :(得分:-1)

实际上,您不必自己开发此功能。您只需要使用EditText而不是TextView,同时将Edit:text的android:editable设置为false。

我的回答在这里,希望它可以帮到你:

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