我想在我正在开发的Android应用程序上放置一个超链接。
我试过了:
main.xml中
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/hyperlink"
android:id="@+id/hyperlink"
android:autoLink="web"
>
</TextView>
strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">WebLink</string>
<string name="hyperlink">http://google.com</string>
</resources>
但问题是,链接如下所示:http://google.com并且我不想显示实际的网址。
1)如何通过“点击此处访问Google”等文字替换链接,文字与网址网址相关联?
2)如何放置电子邮件地址(同样的问题,如何用“Click Here to Email”等文本替换它,文本应与email@domain.com链接)
我也尝试过本教程:http://coderzheaven.com/2011/05/10/textview-with-link-in-android/
但我收到以下错误消息:
Description Resource Path Location Type
http cannot be resolved to a variable MyLink.java /MyLink/src/com/MyLink line 21 Java Problem
Syntax error on token "" <br /> <a href="", ? expected after this token MyLink.java /MyLink/src/com/MyLink line 21 Java Problem
Type mismatch: cannot convert from String to boolean MyLink.java /MyLink/src/com/MyLink line 20 Java Problem
答案 0 :(得分:12)
使用默认Linkify class。
以下是Example以及教程中的代码:
这是我的示例代码,我认为这将解决您的问题:
public class StackOverflowActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 1) How to replace link by text like "Click Here to visit Google" and
// the text is linked with the website url ?
TextView link = (TextView) findViewById(R.id.textView1);
String linkText = "Visit the <a href='http://stackoverflow.com'>StackOverflow</a> web page.";
link.setText(Html.fromHtml(linkText));
link.setMovementMethod(LinkMovementMethod.getInstance());
// 2) How to place email address
TextView email = (TextView) findViewById(R.id.textView2);
String emailText = "Send email: <a href=\"mailto:person@stackoverflow.com\">Click Me!</a>";
email.setText(Html.fromHtml(emailText));
email.setMovementMethod(LinkMovementMethod.getInstance());
}
}