我正在尝试使用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,则文本为空白/不可见,如果我注释掉该行,则文本可见且格式正确,但不可点击。
知道我在哪里错了吗?
谢谢。