안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요.
A 액티비티가 db에서 데이터를 가져온뒤 B를 이용해서 화면에 목록을 출력하고 있습니다.
목록을 출력하는 B 는 A에서 검색한 데이터를 출력하기에 CursorAdaptor 를 extends 하고 있구요.
B의 layout 에서 내용을 출력하는 TextView 의 Auto link는 all 로 해뒀습니다.
그런데 목록의 내용중에 웹주소나 이메일이 있으면 링크를 걸어주고 싶은데 오류가 발생하고 있습니다.
오류내용은 아래와 같습니다.
-------------------------------------------------------------------------------------------------------------------
01-18 15:16:42.716: ERROR/AndroidRuntime(5843): Uncaught handler: thread main exiting due to uncaught exception
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires
the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.app.ApplicationContext.startActivity(ApplicationContext.java:553)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.content.ContextWrapper.startActivity(ContextWrapper.java:248)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.text.style.URLSpan.onClick(URLSpan.java:62)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.text.method.LinkMovementMethod.onTouchEvent(LinkMovementMethod.java:216)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.widget.TextView.onTouchEvent(TextView.java:6647)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.View.dispatchTouchEvent(View.java:3715)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent
(PhoneWindow.java:1700)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1111)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1684)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.ViewRoot.handleMessage(ViewRoot.java:1701)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.os.Handler.dispatchMessage(Handler.java:99)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.os.Looper.loop(Looper.java:123)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.app.ActivityThread.main(ActivityThread.java:4364)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at java.lang.reflect.Method.invokeNative(Native Method)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at java.lang.reflect.Method.invoke(Method.java:521)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at dalvik.system.NativeStart.main(Native Method)
-------------------------------------------------------------------------------------------------------------------
검색을 해봐도 복합적인 문제라 뾰족한 해답을 찾지 못하고 있습니다.
TextView 의 Auto link 만 all 로 정의하면 웹주소건 이메일이건 알아서 링크해준다고 알고 있는데 일반 Activity 를 extends 한 경우에만 해당되는 사항인가요?
위와 같이 리스트에서 CursorAdaptor 를 extends 한 경우는 어떻게 처리해야 하는지..
혹시 비슷한 문제를 해결하신 분이 계시면 조언 부탁드립니다.
A 액티비티가 db에서 데이터를 가져온뒤 B를 이용해서 화면에 목록을 출력하고 있습니다.
목록을 출력하는 B 는 A에서 검색한 데이터를 출력하기에 CursorAdaptor 를 extends 하고 있구요.
B의 layout 에서 내용을 출력하는 TextView 의 Auto link는 all 로 해뒀습니다.
그런데 목록의 내용중에 웹주소나 이메일이 있으면 링크를 걸어주고 싶은데 오류가 발생하고 있습니다.
오류내용은 아래와 같습니다.
-------------------------------------------------------------------------------------------------------------------
01-18 15:16:42.716: ERROR/AndroidRuntime(5843): Uncaught handler: thread main exiting due to uncaught exception
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires
the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.app.ApplicationContext.startActivity(ApplicationContext.java:553)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.content.ContextWrapper.startActivity(ContextWrapper.java:248)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.text.style.URLSpan.onClick(URLSpan.java:62)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.text.method.LinkMovementMethod.onTouchEvent(LinkMovementMethod.java:216)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.widget.TextView.onTouchEvent(TextView.java:6647)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.View.dispatchTouchEvent(View.java:3715)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent
(PhoneWindow.java:1700)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1111)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1684)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.view.ViewRoot.handleMessage(ViewRoot.java:1701)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.os.Handler.dispatchMessage(Handler.java:99)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.os.Looper.loop(Looper.java:123)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at android.app.ActivityThread.main(ActivityThread.java:4364)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at java.lang.reflect.Method.invokeNative(Native Method)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at java.lang.reflect.Method.invoke(Method.java:521)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
01-18 15:16:42.755: ERROR/AndroidRuntime(5843): at dalvik.system.NativeStart.main(Native Method)
-------------------------------------------------------------------------------------------------------------------
검색을 해봐도 복합적인 문제라 뾰족한 해답을 찾지 못하고 있습니다.
TextView 의 Auto link 만 all 로 정의하면 웹주소건 이메일이건 알아서 링크해준다고 알고 있는데 일반 Activity 를 extends 한 경우에만 해당되는 사항인가요?
위와 같이 리스트에서 CursorAdaptor 를 extends 한 경우는 어떻게 처리해야 하는지..
혹시 비슷한 문제를 해결하신 분이 계시면 조언 부탁드립니다.