Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单击TextView中的HTML链接会引发奇怪的AndroidRunTimeException_Android - Fatal编程技术网

单击TextView中的HTML链接会引发奇怪的AndroidRunTimeException

单击TextView中的HTML链接会引发奇怪的AndroidRunTimeException,android,Android,我正在从我的站点检索一些HTML并将其放入文本视图中。此HTML可能包含指向网页、电子邮件等的锚定标记。我正在尝试使这些链接能够单击,以便当用户单击时,默认浏览器打开网页。我是按照这个答案上的说明来做这件事的——还有一些其他的在线来源 我的代码是这样的: TextView para=new TextView(getApplicationContext()); LayoutParams lpfortext=new LayoutParams(LayoutParams.MATCH_PARENT

我正在从我的站点检索一些HTML并将其放入文本视图中。此HTML可能包含指向网页、电子邮件等的锚定标记。我正在尝试使这些链接能够单击,以便当用户单击时,默认浏览器打开网页。我是按照这个答案上的说明来做这件事的——还有一些其他的在线来源

我的代码是这样的:

TextView para=new TextView(getApplicationContext());    
LayoutParams lpfortext=new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
lpfortext.setMargins(10, 10, 10, 10);
para.setText(Html.fromHtml(e.html()));
para.setMovementMethod(LinkMovementMethod.getInstance());
para.setLinksClickable(true); //error exists on removing this
para.setAutoLinkMask(Linkify.ALL);  //error exists on removing this
para.setLayoutParams(lpfortext);
但当我实际点击应用程序中的链接(在ICS手机上,尚未在模拟器上测试)时,我得到以下错误(堆栈跟踪的快照,最后是全文):

有什么想法可能导致错误以及如何修复它吗

编辑:完整跟踪,根据要求,如下所示--


似乎使用非活动上下文初始化para
TextView
对象,这需要在启动活动的
Intent
上设置
Intent.FLAG\u Activity\u NEW\u TASK

这将解决问题


TextView para=新的TextView(此)
这是指
活动
上下文

如果从XML充气文本视图,请确保使用“getActivity().GetLayoutFlater()”充气包含文本视图的布局。这对我来说已经解决了。

好,发布完整的stacetrace@imrankhan-在问题的末尾贴出整个内容,看一看。如何初始化para对象使用
TextView para=new TextView向我显示代码尝试(此)此处指的是当前活动…传递当前活动上下文,而不是应用程序,如
TextView para=new TextView(当前活动.this)在您有意创建时相同此部分代码位于
AsyncTask
扩展类中。因此,
将引用相同的代码。如何引用该活动?发布完整的代码以提供准确的解决方案,但请稍候,为什么需要在AsyncTask中声明TextView@vr3690:但是活动上下文在AsyncTask的onPreexecute方法中是可访问的。是的,我知道了。谢谢。事实上,这是一个更好的答案
11-18 13:17:51.503: E/AndroidRuntime(6010): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
11-18 13:17:51.503: E/AndroidRuntime(6010):     at android.app.ContextImpl.startActivity(ContextImpl.java:1095)
11-18 13:17:51.503: E/AndroidRuntime(6010):     at android.content.ContextWrapper.startActivity(ContextWrapper.java:276)
11-18 13:17:51.503: E/AndroidRuntime(6010):     at android.text.style.URLSpan.onClick(URLSpan.java:62)
11-18 13:17:51.503: E/AndroidRuntime(6010):     at android.text.method.LinkMovementMethod.onTouchEvent(LinkMovementMethod.java:212)
11-18 13:45:09.741: E/AndroidRuntime(7946): FATAL EXCEPTION: main
11-18 13:45:09.741: E/AndroidRuntime(7946): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.app.ContextImpl.startActivity(ContextImpl.java:1095)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.content.ContextWrapper.startActivity(ContextWrapper.java:276)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.text.style.URLSpan.onClick(URLSpan.java:62)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.text.method.LinkMovementMethod.onTouchEvent(LinkMovementMethod.java:212)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.widget.TextView.onTouchEvent(TextView.java:8835)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.view.View.dispatchTouchEvent(View.java:5579)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1965)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1734)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1965)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1734)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1965)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1734)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1965)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1734)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1965)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1734)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1965)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1734)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1982)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1441)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.app.Activity.dispatchTouchEvent(Activity.java:2421)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1930)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.view.View.dispatchPointerEvent(View.java:5759)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:2970)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2529)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.view.ViewRootImpl.processInputEvents(ViewRootImpl.java:869)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2538)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.os.Looper.loop(Looper.java:154)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at android.app.ActivityThread.main(ActivityThread.java:4945)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at java.lang.reflect.Method.invokeNative(Native Method)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at java.lang.reflect.Method.invoke(Method.java:511)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
11-18 13:45:09.741: E/AndroidRuntime(7946):     at dalvik.system.NativeStart.main(Native Method)