0

У меня есть активность с двумя вкладками, созданными с помощью SlidingTabLayout и ViewPager. Каждая вкладка представляет собой фрагмент с различными макетами. Оба макета, однако, содержат похожие текстовые изображения для ссылки на номер телефона, используя autolink = «phone».android: autoLink = "phone" не работает внутри фрагмента

<TextView android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:id="@+id/contact" 
android:text="+91-0000000000" 
android:autoLink="phone"/> 

Проблема: Когда я нажимаю на TextView в Tab1 (первый фрагмент), он отлично работает и ссылки на номеронабиратель телефона. Однако выполнение этого же в tab2 (второй фрагмент) приводит к сбою приложения.

Журнал ошибок:

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 

Где я ошибся?

+0

http://androidsbs.blogspot.in/2013/10/have-clickable-phone-number-link-in .html –

+0

http://stackoverflow.com/questions/9725931/set-link-clickable-in-java-android –

ответ

0

Ни один из вышеперечисленных ответов не работал для меня. Вот как я его исправил:

У моих фрагментов вкладки были пользовательские массивы ArrayAdapters, внутри которых отображалась автолинка. Для инициализации адаптера, контекст передается был

getActivity().getApplicationContext() 

Я изменил контекст getActivity()

Смежные вопросы