현재 일부 HTML 전화 번호 및 URL이 포함 된 TextView가 있습니다. 나는 우리가이 링크를 클릭 할 수 있도록하기 위해 setMovementMethod를 사용할 수있는 것으로 나타났습니다LinkMovementMethod를 사용하는 동안 예외 (ActivityNotFoundException)을 catch하는 방법
:이 꽤 잘 작동하지만, 일부 장치에, 그것은 ActivityNotFoundException와 충돌하고 매우 understanble입니다
tv.setText("Phone number is: +32485123456 and url is http://www.blabla.com");
tv.setMovementMethod(LinkMovementMethod.getInstance());
. (아래 코드 참조)
이러한 문제는 내 개발자 콘솔에 표시되며이를 재현 할 수 없습니다.
는내가 직면하고 큰 문제는 클릭이 LinkMovementMethod
으로 내가 이러한 오류를 피할 수있는 방법에 대한 아이디어를 처리로 내 활동에/catch 코드를 시도 할 수 없다는 것입니다?
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=www.vlaamsbrabant.be/zoutleeuw (has extras) }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1408)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378)
at android.app.Activity.startActivityForResult(Activity.java:2817)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:817)
at android.app.Activity.startActivity(Activity.java:2923)
at android.text.style.URLSpan.onClick(URLSpan.java:62)
at android.text.method.LinkMovementMethod.onTouchEvent(LinkMovementMethod.java:216)
at android.widget.TextView.onTouchEvent(TextView.java:6788)
at android.view.View.dispatchTouchEvent(View.java:3766)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1896)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1159)
at android.app.Activity.dispatchTouchEvent(Activity.java:2086)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1880)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1811)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
아직 테스트하지는 않았지만 완벽한 대답처럼 들립니다. 답변을 수락했습니다! –
다음과 같이 사용하십시오. - setMovementMethod (new MovementCheck()); – David
또는 이렇게 사용하십시오.추가 : \t private static MovementCheck sInstance; \t 공용 static MovementCheck의 getInstance() { \t \t 경우 (sInstance == NULL) \t \t \t sInstance = 새로운 MovementCheck(); \t \t return sInstance; \t} 또한 TextView에서 컨텍스트를 얻을 수 있습니다. widget.getContext(); – Yar