0

我有一个TextView有两种不同颜色的。在这里,如果我点击迷你它应该重定向到一个活动,如果我点击地铁重定向到另一个活动。我怎样才能做到这一点?

TextView t = (TextView)v.findViewById(R.id.text);
String text = "<font color=#000000><b>"+"mini"+"</b></font><font color=#000000> added </font><font color=#1569C7>"+"Metro"+"</font><font color=#000000> as a favourite.</font>";
t.setText(Html.fromHtml(text));
4

5 回答 5

2

您可以做的是创建一个自定义类来扩展ClickableSpan和管理您的可点击文本。我在这里回答了同样的问题。

于 2012-07-10T08:11:08.963 回答
0

onclick听众中,我会试试这个:

if (text.equalsIgnoreCase("mini")) {
    // call your next activity here
} else if(text.equalsIgnoreCase("metro")) {
    // call your next activity here
}

不要忘记android:clickable="true"在 TextView 的 XML 文件中进行设置。

于 2012-07-10T08:07:17.083 回答
0

可以满足您的需求,但请记住,要正确使用此类组件非常困难。很可能某个地方的某个人在单击链接时会遇到问题——尤其是当文本位于多行并且链接的单词在垂直方向上彼此靠近时。

我建议反对这种解决方案。

于 2012-07-10T08:18:18.410 回答
0

在 textview 的点击侦听器上,您必须找到它的文本,您可以使用 getText 属性来比较文本并根据文本打开活动。

于 2012-07-10T08:05:18.547 回答
0

我认为您可以在具有两种不同颜色和文本的线性布局中使用两个文本视图。然后你可以实现onClicklistener()两个文本视图。你会实现你想要的,它看起来和你期望的一样。

<LinearLayout
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
<TextView
    android:id="@+id/text1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_below="@+id/settings" 
    android:layout_marginTop = "10dip"
    android:padding="3dip"
    android:text="@string/txt1"
    android:textColor="#000000"
    android:textSize="25sp"
    android:textStyle="bold" />

<TextView
    android:id="@+id/text2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_below="@+id/settings" 
    android:layout_marginTop = "10dip"
    android:padding="3dip"
    android:text="@string/txt2"
    android:textColor="#1569C7"
    android:textSize="25sp"
    android:textStyle="bold" />

</LinearLayout>

希望能帮助到你

于 2012-07-10T08:11:35.820 回答