【问题标题】:How to make a string clickable in Android [duplicate]如何在Android中使字符串可点击[重复]
【发布时间】:2016-06-28 08:30:32
【问题描述】:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="legalText">

通过使用此 xxxxxxxxxxx 应用程序,我同意此应用程序中的使用条款和隐私政策通知[[需要正式名称]]。我了解使用此 xxxxxxxxx 应用程序的风险和决定权由我自己承担。我理解并同意,我在此应用程序中提供给 xxxxxxx 的健康信息是真实的,并且将是 xxxxxxxxxx 提供者在我通过 xxxxxxxxxx 进行评估和治疗过程中使用的唯一健康信息来源。此外,作为我使用 xxxxxxxx 应用程序的一部分,我同意我不会将此应用程序用于 xxxxxxxx 使用条款[[链接到条款]] 和同意Telehealth [[Link to Consent to Telehealth]]”,并同意请求医疗服务[插入同意请求医疗服务的链接]

</string>
</resources>

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

【问题讨论】:

    标签: android xml


    【解决方案1】:

    您可以这样做:

    1. 将一个字符串分解为多个字符串资源(至少将应用名称和链接分开到不同的字符串资源。
    2. 通过加入在步骤 1 中找到的子字符串来构造完整的legalText。对带有链接的子字符串使用&lt;a href= "link"&gt;&lt;a/&gt; 标签。您可以根据自己的想法为其余子字符串设置相应样式。
    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】:

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-03-16
          • 1970-01-01
          • 1970-01-01
          • 2019-10-13
          • 2020-02-20
          • 2015-01-01
          相关资源
          最近更新 更多