如何将TextView的一部分链接到Activity

时间:2014-09-11 11:31:55

标签: android xamarin.android

所以我有一个带有一些文本的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>

不知道在这里设置什么方案。

2 个答案:

答案 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控件。