Android自动连结:略过少于10位数字

时间:2018-11-20 05:02:31

标签: android android-layout

我有一个textview,其autoLinks设置为all。我想跳过“ 2018”之类的数字 这些年份,这些数字不应突出显示。我可以在文本中使用分隔符,以便在解析时跳过那些数字吗?

编辑:      此问题仅在Mi设备中发生。

4 个答案:

答案 0 :(得分:0)

尝试一下。...

String s1="jan 2018,Saturday";  
String replaceString=s1.replace("2018","");//replaces all occurrences of "2018" to ""  
System.out.println(replaceString);
  

输出:= jan,星期六。

答案 1 :(得分:0)

尝试此代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    textView = findViewById(R.id.textView);
    highlightTv();

}
protected void highlightTv(){
    // Specify the text/word to highlight inside TextView
    String textToHighlight = "2018";

    // Construct the formatted text
    String replacedWith = "<font color='green'>" + textToHighlight + "</font>";

    // Get the text from TextView
    String originalString = textView.getText().toString();

    // Replace the specified text/word with formatted text/word
    String modifiedString = originalString.replaceAll(textToHighlight,replacedWith);

    // Update the TextView text
    mTextView.setText(Html.fromHtml(modifiedString));
}

答案 2 :(得分:0)

在这种情况下,使用Spanable String突出显示“特定字符串”。

这里是一个示例: SpannableString spannableStr =新的SpannableString(originalText);                 ForegroundColorSpan前景色ColorSpan =新的ForegroundColorSpan(Color.RED);                 spannableStr.setSpan(foregroundColorSpan,15,30,Spanned.SPAN_INCLUSIVE_EXCLUSIVE);                 spannableTextView.setText(spannableStr);

设置颜色以及开始字符串索引和结束索引。

有关更多详细信息,请检查此链接click this link

答案 3 :(得分:0)

我搜索了您的答案,请尝试

private void stripUnderlines(TextView textView) {
    Spannable s = new SpannableString(textView.getText());
    URLSpan[] spans = s.getSpans(0, s.length(), URLSpan.class);
    for (URLSpan span: spans) {
        int start = s.getSpanStart(span);
        int end = s.getSpanEnd(span);
        s.removeSpan(span);
        span = new URLSpanNoUnderline(span.getURL());
        s.setSpan(span, start, end, 0);
    }
    textView.setText(s);
}

这需要URLSpan的自定义版本,该版本未启用TextPaint的“下划线”属性:

private class URLSpanNoUnderline extends URLSpan {
    public URLSpanNoUnderline(String url) {
        super(url);
    }
    @Override public void updateDrawState(TextPaint ds) {
        super.updateDrawState(ds);
        ds.setUnderlineText(false);
    }
}  

这是link