Android 如何将文本视图中的文本或部分显示为可单击链接

Android 如何将文本视图中的文本或部分显示为可单击链接,android,textview,linkify,Android,Textview,Linkify,关于如何在文本视图中启用链接,有很多答案,但我找不到任何关于如何使文本视图中的[部分]文本看起来像是带有自定义操作的链接的答案。换句话说,我想伪造一个链接,因为这个动作不够重要,无法得到一个按钮。我不想让它看起来像页面上的主要动作 例如,在我的“关于”对话框中,我希望显示文本“开源许可证”,使其看起来像一个链接,但启动我的OpenSourceLicensesActivity,而不是实际的URL 我最终从那些遇到上述问题的人的帖子中得到了答案,因此我在这里提供了这个具体问题的答案。下面的方法将使文

关于如何在
文本视图
中启用链接,有很多答案,但我找不到任何关于如何使
文本视图
中的[部分]文本看起来像是带有自定义操作的链接的答案。换句话说,我想伪造一个链接,因为这个动作不够重要,无法得到一个按钮。我不想让它看起来像页面上的主要动作

例如,在我的“关于”对话框中,我希望显示文本“开源许可证”,使其看起来像一个链接,但启动我的
OpenSourceLicensesActivity
,而不是实际的URL


我最终从那些遇到上述问题的人的帖子中得到了答案,因此我在这里提供了这个具体问题的答案。

下面的方法将使文本从
开始
结束
的部分可点击

public static void makeClickableLink (@NonNull final TextView textView,
                                      @NonNull final CharSequence text,
                                      final int start,
                                      final int end,
                                      @NonNull final ClickableSpan onClick) { 
    final SpannableString span = new SpannableString (text);
    span.setSpan (onClick, start, end, 0);

    textView.setText (span);
    textView.setMovementMethod (LinkMovementMethod.getInstance ());
}
提供的
ClickableSpan
允许您按如下方式处理单击事件:

final TextView tv = (TextView)findViewById (android.R.id.text1);    

final ClickableSpan link = new ClickableSpan () {
    @Override public void onClick (final View widget) {
        context.startActivity (new Intent (context, OpenSourceLicensesActivity.class));
    }
};

makeClickableLink (tv, "Click here for OSS Licenses", 5, 9, link);

上面的内容应该可以让
点击这里
启动您的活动。

只是一个没有解释的否决票?谢谢你的贡献。