【发布时间】:2018-10-24 20:10:36
【问题描述】:
当字符串表示域名时,我无法linkfy 带有href 的字符串。所以字符串。让我告诉你。
这是字符串:
<string name="go_to_settings">Please go to "Settings" in <a href="https://www.mywebsite.com/settings">mywebsite.com</a> to change this status</string>
它会对用户说:“请转到 mywebsite.com 中的“设置”以更改此状态。”
这是我正在使用的textview:
<TextView
android:id="@+id/tv_instructions"
android:layout_width="280dp"
android:layout_height="wrap_content"
android:layout_marginTop="73dp"
android:lineSpacingExtra="3sp"
android:textAlignment="center"
android:textColor="#5c5c5c"
android:textColorLink="@color/action_blue"
android:linksClickable="true"
android:text="@string/go_to_settings"/>
这就是我尝试建立链接的方法clickable:
Linkify.addLinks(tv_instructions, Linkify.ALL)
tv_instructions.movementMethod=LinkMovementMethod.getInstance()
但我看到在 api 24 和 27 设备和模拟器上发生的情况是链接将转到 www.mywebsite.com 而不是 www.mywebsite/settings
但奇怪的是,如果我更改用户看到的文本并从中删除 .com,那么它就可以正常工作。因此,如果用户看到它,它会起作用:
它会对用户说:“请转到我的网站中的“设置”以更改此状态。”
注意这里没有提到 .com。我怎样才能得到这个显示。我也试过这种方式:
tv_instructions.text=(utils.fromHTML(resources.getString(R.string.go_to_settings),null))
tv_instructions.movementMethod=LinkMovementMethod.getInstance()
和这样的文本视图:
<TextView
android:id="@+id/tv_instructions"
android:layout_width="280dp"
android:layout_height="wrap_content"
android:layout_marginTop="73dp"
android:lineSpacingExtra="3sp"
android:textAlignment="center"
android:textColor="#5c5c5c"
android:text="@string/go_to_settings"
/>
你们知道我做错了什么吗?
【问题讨论】:
-
测试用例
android:autoLink="web" -
我在代码中删除了所有链接中的调用,并按照您在 xml 中所说的进行了操作。结果相同
-
您是否在浏览器中打开了链接
-
链接在浏览器中打开正常。