所以我有一个带有一些文本的TextView如下
一些文字......一些文字......一些文字......一些文字......一些文字......一些文字......一些文字......一些文字...... ... href.link ......其他一些文字......其他一些文字......其他一些文字......其他一些文字...... 。其他一些文字......我只是希望文本的链接部分在单击时启动另一个活动。我试图在Xamarin中做到这一点,到目前为止我已经完成了以下工作:
TextView1.SetText(Html.FromHtml("<span>some text...<a href='example://'></a>...some other text </span>"
在我的目标活动中:
[IntentFilter(new[] { Intent.ActionView },
DataScheme = "example",
Categories = new[] { Intent.CategoryDefault })]
我猜是等于:
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.VIEW" />
<data android:scheme="example" />
</intent-filter>
不知道在这里设置什么方案。
答案 0 :(得分:1)
我明白了。显然我必须将其添加到代码(有问题)才能使其正常工作 -
TextView1.MovementMethod = LinkMovementMethod.Instance;
答案 1 :(得分:0)
这就是我在Xamarin中做类似事情的方式。我的布局中有一个名为TextView
的{{1}}。在活动的lblCreateNewAccount
方法中,我这样做:
OnCreate
以下是适合您的简化TextView lbl = this.FindViewById<TextView> (Resource.Id.lblCreateNewAccount);
lbl.TextFormatted = Android.Text.Html.FromHtml ("<u>Create New Account</u>");
lbl.SetTextColor (Color.ParseColor ("#ffffff"));
Typeface face = Typeface.CreateFromAsset (this.Assets, "fonts/OpenSansRegular.ttf");
lbl.SetTypeface (face, TypefaceStyle.Normal);
lbl.Click += lblCreateNewAccount_Clicked;
方法:
lblCreateNewAccount_Clicked
基本上,概念是将void lblCreateNewAccount_Clicked (object sender, EventArgs e)
{
this.StartActivity (typeof(NewAccountActivity));
}
格式化为TextView
,然后实施href
事件以导航到下一个活动。不确定这是否是最好和最优雅的方式,但它适用于我。
顺便说一句,在这种情况下,您将不得不使用三个Click
控件。