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

Posted

技术标签:

【中文标题】如何在单击 TextView 中的文本链接时打开浏览器 [重复]【英文标题】:How do I open a browser on clicking a text link in TextView [duplicate] 【发布时间】:2017-08-18 22:56:12 【问题描述】:

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

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

TextView 代码:

<TextView
    android:layout_
    android:layout_
    android:id="@+id/home"
    android:text="@string/google" />

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

 TextView txt= (TextView) findViewById(R.id.home); //txt is object of TextView
    txt.setMovementMethod(LinkMovementMethod.getInstance());

string.xml 代码:

<string name="google">
    <a href="www.google.com">Home page</a>
</string>

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

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

请帮忙!

【问题讨论】:

请添加崩溃日志 看这个:***.com/questions/2734270/… 【参考方案1】:

只需在您的 textview xml 中添加以下行。

android:autoLink="web"

【讨论】:

我的 java 代码没有 onClickListener() 你也应该给出那个代码。如果您回答任何人的任何问题,请从现在开始给出完整的答案。无论如何,感谢您的帮助。【参考方案2】:

感谢那些回答我的人

这就是完整答案的样子。

activityname.xmlTextView 中写android:autoLink="web"

<TextView
    android:layout_
    android:layout_
    android:id="@+id/home"
    android:autoLink="web
    android:text="@string/google" />

java文件中写入创建onClickListener()

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);
        
    );

string.xml 文件没有变化

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

【讨论】:

我注意到您手动将 uri 传递给意图。如果您有一个带有多个链接的长文本视图怎么办?如何务实地找到点击了哪个链接并从字符串资源文件中提取该特定 url?【参考方案3】:
text_view.setOnClickListener(new OnClickListener()

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

);

【讨论】:

没用 我找到了丢失的钥匙,谢谢 这对我有用;我刚刚为 OnClickListener 添加了此示例中缺少的适当实现方法。【参考方案4】:

检查它是否对我有用

            <Button
                android:layout_
                android:layout_
                android:text=" Click To Send Email "
                android:textColor="#FFF"
                android:clickable="true"
                android:background="#cf1414"
                android:linksClickable="true"
                android:id="@+id/emailbutton"/>

【讨论】:

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

以上是关于如何在单击 TextView 中的文本链接时打开浏览器 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

单击TextView中的电话号码或电子邮件地址时出错

单击时如何使 TextView 闪烁其背景?

Android:超链接文本视图到地图位置?

如何使用textview移动到表格视图中的下一个单元格/行

android - 文本视图自动链接

带有包含网站链接的文本的自动垂直滚动 TextView