android - 部分 TextView 可通过链接点击

标签 android hyperlink textview

我有一个在strings.xml 中有大量文本的应用程序。该文本的一部分是必须可点击的超链接。

现在,当我从布局文件将该文本插入 TextView 时,它可以工作,但是当我尝试使用 tv.settext(getStrings...) 将相同的文本插入同一个 TextView 时,它将无法工作。

这是代码:

字符串.xml:

<string name="some_text">
For you to see the article, you need to click <a href='http://www.google.com'>this link</a>
\n\n
after that etc...
</string>

Activity :
TextView txt = findViewById(R.id.link_tv);
txt.setMovementMethod(LinkMovementMethod.getInstance());
txt.setText(getString(R.string.some_text));

Activity 主.xml:
<TextView
     android:id="@+id/link_tv"
     android:textColor="@color/privacy_policy_link_text_color"
     android:paddingLeft="@dimen/_5sdp"
     android:paddingRight="@dimen/_5sdp"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"/>

有什么想法吗?

最佳答案

测试前检查以下几点

  • 检查您的链接是否以 http:// 开头或 https://
  • 将您的字符串放在 CDATA 标记中(如 <string name="some_text"><![CDATA[PLACE_YOUR_HTML_STRING_HERE]]></string> )
  • 检查您是否在 manifest.xml 中添加了 Internet 权限文件 <uses-permission android:name="android.permission.INTERNET"/>
  • 然后可以使用以下代码将动态 html 文本设置为 textView
  • if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        textView.setText(Html.fromHtml(getString(R.string.html_string), Html.FROM_HTML_MODE_COMPACT));
    } else { 
        textView.setText(Html.fromHtml(getString(R.string.html_string)));
    }
    Linkify.addLinks(textView, Linkify.ALL);
    textView.setMovementMethod(LinkMovementMethod.getInstance());
    

    关于android - 部分 TextView 可通过链接点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55261907/

    相关文章:

    java - 如何将 Location 对象放入 Parcelable

    java - 在 Android 客户端应用程序中混淆 URL

    html - CSS 中的图像映射?

    android - 如何从草图值计算 TextView 的 letterSpacing?

    java - Mockito 和 AsyncTasks

    android - 为什么安卓模拟器很慢?

    reactjs - React Router 多个参数不起作用

    html - 如何仅从 :before? 中删除下划线

    android - Android 中的捏合缩放

    android - 如何在android中获得自动滚动 TextView