Android Linkify 文本 - 单一 TextView 中的可扩展文本 - 就像 Twitter 推文一样

标签 android textview linkify spannablestring

我有一个 textView 和类似的文本

“这是带有 KeyWordLink 浏览的简单文本”

在上面的文字中我想制作..

点击链接可打开该网址点击该关键字在我的应用程序中打开一个新 Activity

还有, Whole TextView 甚至还有一个点击事件。

请帮助我找到解决方案。 谢谢你, MKJParekh

最佳答案

您可以做的是创建一个自定义 ClickableSpan,如下所示,

class MyCustomSpannable extends ClickableSpan
{
    String Url;
    public MyCustomSpannable(String Url) {
        this.Url = Url;
    }
    @Override
    public void updateDrawState(TextPaint ds) {
            // Customize your Text Look if required
        ds.setColor(Color.YELLOW);
        ds.setFakeBoldText(true);
        ds.setStrikeThruText(true);
        ds.setTypeface(Typeface.SERIF);
        ds.setUnderlineText(true);
        ds.setShadowLayer(10, 1, 1, Color.WHITE);
        ds.setTextSize(15);
    }
    @Override
    public void onClick(View widget) {
    }
    public String getUrl() {
        return Url;
    }
}

并使用它的 onClick() 打开一个 Activity 或 URL。我正在添加一个在 WebView 中加载 URL 的演示。

String text = "http://www.google.co.in/";
SpannableStringBuilder stringBuilder = new SpannableStringBuilder(text);
MyCustomSpannable customSpannable = new MyCustomSpannable(
                                               "http://www.google.co.in/"){

            @Override
            public void onClick(View widget) {
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setData(Uri.parse(customSpannable.getUrl()));
                startActivity(intent);
            }
        };
        stringBuilder.setSpan(customSpannable, 0, text.length(),
                                         Spannable.SPAN_INCLUSIVE_INCLUSIVE);

        textView.setText( stringBuilder, BufferType.SPANNABLE );
        textView.setMovementMethod(LinkMovementMethod.getInstance());

关于Android Linkify 文本 - 单一 TextView 中的可扩展文本 - 就像 Twitter 推文一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7570239/

相关文章:

java - Android 2D游戏简单引擎或框架

android - Material-Design的调色板如何使用,如何计算和选择?

android - 尽管使用 ellipsize 属性,但 TextView 不会在 TableLayout 中被截断

java - 如何在 strings.xml 中设置从 JSON 消耗的变量

android - 椭圆 Ice Cream Sandwich 添加[

android - 使用 linkify 或 autolink 后 TextView 突出显示

android - 用于 IntelliJ 中 Android 单元测试的instrumentTest 文件夹

android - 从最近的应用程序列表中删除时,我的应用程序被杀死

android - onLongClick 触发 Linkify onClick

android - 使用纬度和经度信息创建 Google 位置 URL