首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android:autoLink="phone“在片段中不工作

android:autoLink="phone“在片段中不工作
EN

Stack Overflow用户
提问于 2016-02-05 10:29:36
回答 1查看 411关注 0票数 0

我有一个使用SlidingTabLayout和ViewPager创建的带有两个选项卡的活动。每个选项卡都是一个具有不同布局的片段。然而,这两种布局都包含类似的文本视图,可以使用autolink=" phone“链接到电话号码。

代码语言:javascript
复制
<TextView android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/contact"
 android:text="+91-0000000000"
 android:autoLink="phone"/>

问题:当我点击tab1中的文本视图(第一个片段)时,它工作得很完美,并链接到电话的拨号程序。然而,在tab2(第二个片段)中做同样的操作会导致应用程序崩溃。

错误日志:

代码语言:javascript
复制
android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
            at android.app.ContextImpl.startActivity(ContextImpl.java:1234)
            at android.app.ContextImpl.startActivity(ContextImpl.java:1221)
            at android.content.ContextWrapper.startActivity(ContextWrapper.java:322)
            at android.text.style.URLSpan.onClick(URLSpan.java:62)
            at android.text.method.LinkMovementMethod.onTouchEvent(LinkMovementMethod.java:217)
            at android.widget.TextView.onTouchEvent(TextView.java:7992)
            at android.view.View.dispatchTouchEvent(View.java:8393)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2431)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2173)
            at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2317)
            at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1692)
            at android.app.Activity.dispatchTouchEvent(Activity.java:2790)
            at android.support.v7.internal.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:59)
            at android.support.v7.internal.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:59)
            at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2278)
            at android.view.View.dispatchPointerEvent(View.java:8583)
            at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4060)
            at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3926)
            at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3483)
            at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3536)
            at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3502)
            at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3612)
            at android.view.ViewRootImpl$InputStage.apply(ViewRootImp

我哪里出错了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-28 04:13:30

以上的答案对我都没有用。我就是这样修好的:

我的选项卡片段有自定义的ArrayAdapters,其中显示了autolink。要初始化适配器,传递的上下文是

代码语言:javascript
复制
getActivity().getApplicationContext()

我将上下文更改为getActivity()

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35221792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档