如何在Android中使字符串可点击

时间:2016-06-27 23:55:20

标签: android xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="legalText">

使用此xxxxxxxxxxx应用程序,我同意此应用程序中的使用条款和隐私政策通知 [[需要官方名称]] 。我知道使用这个xxxxxxxxx应用程序需要我自担风险和自行决定。我理解并同意我在此应用程序中向xxxxxxx提供的健康信息是真实的,并且将是xxxxxxxxxx提供商在我通过xxxxxxxxxx评估和治疗过程中使用的唯一健康信息来源。此外,作为我使用xxxxxxxx应用程序的一部分,我同意我不会将此应用程序用于xxxxxxxx使用条款 [[link to Terms]] 所禁止的任何目的并同意远程医疗 [[与远程医疗同意的链接]] “,同意申请医疗服务 [插入同意申请医疗服务的链接]

</string>
</resources>

我需要将链接放到此xml文件中括号位置的其他xml页面和html页面。我该怎么做?

3 个答案:

答案 0 :(得分:2)

据我所知,不可能直接将链接添加到字符串中,但是您可以创建不同的字符串并使用不同的TextView组合文本,并将OnClickListeners和链接样式设置为要添加链接的TextView。

答案 1 :(得分:2)

以下是您可以做的事情:

  1. 将一个字符串分成几个字符串资源(至少将app-name分开并链接到不同的字符串资源。
  2. 通过加入步骤1中找到的子字符串来构造完整的legalText。对带有链接的子字符串使用<a href= "link"><a/>标记。当你明白时,你可以相应地设计其余的子串。
  3. 使用Html.fromHtml方法显示格式:

    Spannable text = (Spannable)Html.fromHtml(legalText);
    
    //this one here to get the links clickable:        
    textView.setMovementMethod(LinkMovementMethod.getInstance());
    textView.setText(text);
    
  4. 此时您可能需要删除额外的下划线,因此请使用此方法:

    private void stripUnderlines(TextView textView) {
        Spannable s = (Spannable)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);
    }
    

答案 2 :(得分:1)

如果您使用java和Android Studio进行开发,则只需在TextView上设置onClickListener,就像对按钮一样。

您还应该添加下划线或颜色等样式,以便让用户知道有链接。