如何在单击TextView中的文本链接时打开浏览器

sto*_*erd 6 java xml android string.xml

我做了一个有一些文字的活动.我做了一个可点击的链接,TextView但它工作正常(链接可见下划线).

但当我点击链接时,它说Unfortunately app has stopped responding这是我的代码.

TextView代码:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/home"
    android:text="@string/google" />
Run Code Online (Sandbox Code Playgroud)

Java代码(在protected void onCreate(Bundle savedInstanceState)):

 TextView txt= (TextView) findViewById(R.id.home); //txt is object of TextView
    txt.setMovementMethod(LinkMovementMethod.getInstance());
Run Code Online (Sandbox Code Playgroud)

string.xml代码:

<string name="google">
    <a href="www.google.com">Home page</a>
</string>
Run Code Online (Sandbox Code Playgroud)

这是我的应用程序显示的,

应用截图

现在,如果我单击主页链接错误消息说Unfortunately app has stopped not responding appears我该怎么办?

请帮忙!

Adn*_*jad 12

只需在textview xml中添加以下行.

android:autoLink="web"
Run Code Online (Sandbox Code Playgroud)

  • 我的 java 代码没有 onClickListener() 您也应该提供该代码。如果您回答任何人的任何问题,请从现在开始给出完整的答案。无论如何,感谢您的帮助。 (2认同)

sto*_*erd 10

感谢那些通过他们的答案帮助我的人

这就是完整答案的样子.

TextViewactivityname.xmlandroid:autoLink="web"

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/home"
    android:autoLink="web
    android:text="@string/google" />
Run Code Online (Sandbox Code Playgroud)

java文件中写入createonClickListener()

TextView txt= (TextView) findViewById(R.id.home); //txt is object of TextView
    txt.setMovementMethod(LinkMovementMethod.getInstance());
    txt.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Intent browserIntent = new Intent(Intent.ACTION_VIEW);
            browserIntent.setData(Uri.parse("http://www.google.com"));
            startActivity(browserIntent);
        }
    });
Run Code Online (Sandbox Code Playgroud)

string.xml文件没有变化

感谢@AdnanAmjad @sarvesh @Mikejess和删除他评论的那个人

  • 我注意到您手动将 uri 传递给意图。如果你有一个带有多个链接的长文本视图怎么办?如何务实地找到点击了哪个链接并从字符串资源文件中提取该特定 url? (2认同)

Mik*_*ess 5

text_view.setOnClickListener(new OnClickListener(){

     String url = textView.getText().toString();
    Intent i = new Intent(Intent.ACTION_VIEW);
    i.setData(Uri.parse(url));
    startActivity(i);

});
Run Code Online (Sandbox Code Playgroud)