如何在单击 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.xml
的TextView
中写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 中的文本链接时打开浏览器 [重复]的主要内容,如果未能解决你的问题,请参考以下文章