如何在TextView中将文本或部分显示为可单击的链接

时间:2015-02-02 19:57:22

标签: android textview linkify

关于如何在TextView启用链接,有很多答案,但我找不到任何有关如何制作[部分]文字的内容TextView看起来像是一个自定义操作的链接。换句话说,我想伪造一个链接,因为该动作不足以获得一个按钮。我不希望它看起来像页面上的主要操作。

例如,在我的about对话框中,我想显示文本"开源许可证",让它看起来像一个链接,但启动我的OpenSourceLicensesActivity而不是实际的URL。

我最终从那些遇到上述问题的人那里得到了答案,所以我在这里提供了对这个具体问题的答案。

1 个答案:

答案 0 :(得分:0)

以下方法会使startend的部分文字可以点击。

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);

上述内容应该here可点击,启动您的活动。