安卓中文本视图的一部分是可点击的



我必须在文本视图中显示一些文本。我只希望文本的一部分是可点击的,而文本的其余部分是正常的。

这是我的代码:

TextView mTextView = (TextView) findViewById(R.id.txt);
String mText = "some text.Link to click.Some more text";
SpannableString sb = new SpannableString(mText);
sb.setSpan(new ClickableSpan() {
    @Override
    public void onClick(View widget) {
        Intent in=new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.twitter.com/"));
        startActivity(in);
    }
},  mText.indexOf("Link"),mText.indexOf("Link") + 13,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
mTextView.setText(sb);
mTextView.setMovementMethod(LinkMovementMethod.getInstance());

如果要将完整的 url 放入文本视图中,则可以使用android:autoLink="web"大大简化此过程。

有关详细信息,请参阅文本视图文档

另一个选项是 Html 对象。特别是我认为fromHtml()方法可以让您实现您想要的。你应该能够做这样的事情:

mTextView.setText(Html.fromHtml("blah blah <a href="http://some.site.com">some text to be linkified</a> blah blah"));

您也可以使用 linkify 选项: http://android-developers.blogspot.com/2008/03/linkify-your-text.html - 在这种情况下,您可以动态构建字符串,并且仅使您想要单击的部分。

我从未听说过autoLink属性 - 酷。

另一个选项,可能更接近您的原始问题 - 您可以创建两个彼此相邻的不同 TextView(如果间距为奇数,请使用 layout_marginRight="-8" - 使用负偏移量,这可能需要一些调整才能获得完美的间距)。 然后,您可以将自动链接属性仅应用于要单击的文本视图。

相关内容

  • 没有找到相关文章

最新更新