带有字符串和可单击文本的TextView

时间:2014-09-09 14:06:05

标签: android xamarin xamarin.android textview

我正在尝试使用TextView显示一些文本,部分文本需要可点击以打开另一个活动。

这是我到目前为止所做的:

        var byArtistNameView = view.FindViewById<TextView> (Resource.Id.ArtistName2);

        var ss = new SpannableString("By " + item.Artist.ArtistName);
        var clickableSpan = new MyClickableSpan();

        clickableSpan.Click = x => view.Context.StartActivity(new Intent(view.Context, typeof(MainActivity)));

        ss.SetSpan(new ForegroundColorSpan(Color.Gray), 0, 2, SpanTypes.ExclusiveExclusive);
        ss.SetSpan(clickableSpan, 3, ss.Length(), SpanTypes.ExclusiveExclusive);
        ss.SetSpan (new NoUnderlineSpan (), 3, ss.Length(), SpanTypes.ExclusiveExclusive);
        ss.SetSpan(new ForegroundColorSpan(view.Resources.GetColor (Resource.Color.link_text)), 3, ss.Length(), SpanTypes.ExclusiveExclusive);


        byArtistNameView.TextFormatted = ss;
        byArtistNameView.MovementMethod = LinkMovementMethod.Instance;

        private class MyClickableSpan : ClickableSpan
        {
            public Action<View> Click;

            public override void OnClick(View widget)
            {
                if (Click != null)
                    Click(widget);
            }
        }

如果我将MovementMethod设置为LinkMovementMethod.Instance,则文本为空白/不可见,如果我注释掉该行,则文本可见且格式正确,但不可点击。

知道我在哪里错了吗?

谢谢。

0 个答案:

没有答案