在android中制作一个超链接的textview

我想build立一个像Google这样的textview文本的链接。 反正有这样的链接。 (ie)当点击Google这个词时,应该打开相应的链接。 任何想法都欢迎。

试试这个,让我知道发生了什么..

TextView textView =(TextView)findViewById(R.id.textView); textView.setClickable(true); textView.setMovementMethod(LinkMovementMethod.getInstance()); String text = "<a href='http://www.google.com'> Google </a>"; textView.setText(Html.fromHtml(text)); 

在你的TextView的xml中使用android:autoLink="web" 。 它应该自动转换为可点击的url(如果在文本中find)

所有testing和工作100%
解决scheme: android:autoLink="web"
下面是一个完整的例子

示例布局 Xml

  <TextView android:id="@+id/txtLostpassword" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:autoLink="email" android:gravity="center" android:padding="20px" android:text="@string/lostpassword" android:textAppearance="?android:attr/textAppearanceSmall" /> <TextView android:id="@+id/txtLostpassword" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:autoLink="web" android:gravity="center" android:padding="20px" android:text="@string/defaultpassword" android:textAppearance="?android:attr/textAppearanceSmall" /> 

string.xml中的string

 <string name="lostpassword">If you lost your password please contact <a href="mailto:support@cleverfinger.com.au?Subject=Lost%20Password" target="_top">support@cleverfinger.com.au</a></string> <string name="defaultpassword">User Guide <a href="http://www.cleverfinger.com.au/user-guide/">http://www.cleverfinger.com.au/user-guide/</a></string> 

这也可以通过使用Textview的默认属性来完成

 android:autoLink="email" 

注意: – Html.fromHtml在Android N中已弃用

您需要检查并支持Android N及更高版本的Android

  //Set clickable true tagHeading.setClickable(true); //Handlle click event tagHeading.setMovementMethod(LinkMovementMethod.getInstance()); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) { tagHeading.setText(Html.fromHtml("<a href='https://github.com/hiteshsahu'>https://github.com/hiteshsahu</a>", Html.FROM_HTML_MODE_LEGACY)); } else { tagHeading.setText(Html.fromHtml("<a href='https://github.com/hiteshsahu'>https://github.com/hiteshsahu</a>")); } 

另外

你可以不想编程在TextView上添加autoLink标志。

机器人:自动链接=“网”

机器人:linksClickable = “真”

这样您就不需要添加<a href='somelink'>标签。

这是一个缺点,如果你想添加一个text hyperlink ,你不能这样做。 例如你不能这样做: – [ hiteshsahu ] [1]

  <TextView android:id="@+id/tag_info" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/tag_ll" android:layout_gravity="left" android:layout_margin="10dp" android:autoLink="web" android:linksClickable="true" android:text="https://github.com/hiteshsahu" android:textColor="@color/secondary_text" /> 

两种方法的结果:

https://github.com/hiteshsahu

对于最新版本的SDK fromHtml已被弃用使用下面的行

 String yourtext = "<a style='text-decoration:underline' href='http://www.sample.com'> Sample Website </a>"; if (Build.VERSION.SDK_INT >= 24) { textView.setText(Html.fromHtml(yourtext, Html.FROM_HTML_MODE_LEGACY)); } else { textView.setText(Html.fromHtml(yourtext)); }