我有一个包含电子邮件的文本视图,我希望能够点击它们在我自己的应用程序中启动活动.我Linkify.addLinks(TextView, Linkify.EMAIL_ADDRESSES)用来使电子邮件可以点击,但这会弹出一个选择器,询问用户他们想要打开电子邮件的应用程序.如何直接处理此事件,以便我可以指定在点击链接时调用的活动?
Carlos的回答很有效,但我ACTION_VIEW也想用于外部意图.幸运的是,Linkify确实添加了应用程序ID作为意图的额外内容(对于浏览器兼容性),我的其他意图不添加,所以我使用以下逻辑来确保我正确处理Linkify意图:
@Override
public void startActivity(Intent intent) {
boolean handled = false;
if (TextUtils.equals(intent.getAction(), Intent.ACTION_VIEW)) {
String app_id = intent.getStringExtra(Browser.EXTRA_APPLICATION_ID);
if ( TextUtils.equals(getApplicationContext().getPackageName(), app_id) )
{
// This intent is a view coming from Linkify; handle internally
// << do something smart here >>
handled = true;
}
}
if (!handled)
super.startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)
小智 7
实现此目的的一种方法是使用Linkify 覆盖拥有TextView的活动的startActivity方法.然后,检查Intent操作,该操作应该是ACTION_VIEW for Linkify Intent:
@Override
public void startActivity(Intent intent) {
if (TextUtils.equals(intent.getAction(), Intent.ACTION_VIEW)) {
// Your code here
}
else {
super.startActivity(intent);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3539 次 |
| 最近记录: |