2010-06-07 133 views
5

我似乎遇到了我在自定义适配器中使用的链接问题。出于某种原因,我收到下面的堆栈跟踪,当我点击一个链接:Android - Linkify问题

06-07 20:49:34.696: ERROR/AndroidRuntime(813): Uncaught handler: thread main exiting due to uncaught exception 
06-07 20:49:34.745: ERROR/AndroidRuntime(813): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want? 
06-07 20:49:34.745: ERROR/AndroidRuntime(813):  at android.app.ApplicationContext.startActivity(ApplicationContext.java:550) 
06-07 20:49:34.745: ERROR/AndroidRuntime(813):  at android.content.ContextWrapper.startActivity(ContextWrapper.java:248) 
06-07 20:49:34.745: ERROR/AndroidRuntime(813):  at android.text.style.URLSpan.onClick(URLSpan.java:62) 
06-07 20:49:34.745: ERROR/AndroidRuntime(813):  at android.text.method.LinkMovementMethod.onTouchEvent(LinkMovementMethod.java:216) 
06-07 20:49:34.745: ERROR/AndroidRuntime(813):  at android.widget.TextView.onTouchEvent(TextView.java:6560) 
06-07 20:49:34.745: ERROR/AndroidRuntime(813):  at android.view.View.dispatchTouchEvent(View.java:3709) 
06-07 20:49:34.745: ERROR/AndroidRuntime(813):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
06-07 20:49:34.745: ERROR/AndroidRuntime(813):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
06-07 20:49:34.745: ERROR/AndroidRuntime(813):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
06-07 20:49:34.745: ERROR/AndroidRuntime(813):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
06-07 20:49:34.745: ERROR/AndroidRuntime(813):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
06-07 20:49:34.745: ERROR/AndroidRuntime(813):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
06-07 20:49:34.745: ERROR/AndroidRuntime(813):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
06-07 20:49:34.745: ERROR/AndroidRuntime(813):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
06-07 20:49:34.745: ERROR/AndroidRuntime(813):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659) 
06-07 20:49:34.745: ERROR/AndroidRuntime(813):  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107) 
06-07 20:49:34.745: ERROR/AndroidRuntime(813):  at android.app.Activity.dispatchTouchEvent(Activity.java:2061) 

这里是正在调用它代码:

TextView bot = new TextView(c); 
    bot.setText(li.getBottomText()); 
    bot.setTextColor(Color.BLACK); 
    bot.setTextSize(12); 
    bot.setPadding(50, 35, 0, 10); 
    Linkify.addLinks(bot, Linkify.ALL); 
    rL.addView(bot,ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); 

我明白了什么错误是说但我不知道如何解决它。有没有人有任何想法? 在此先感谢您的帮助

回答

17

原来,答案比我原先想象的要简单得多。问题是,当我将上下文传递到自定义适配器时,我传递的是getApplicationContext(),这与使用标识符不同。

不正确的方法

Context mContext = getApplicationContext(); 
CustomAdapter mAdapter = new CustomAdapter( 
       mContext, 
       itemList); 

正确的方法

CustomAdapter mAdapter = new CustomAdapter( 
       this, 
       itemList); 
+0

感谢很多家伙.. :) :) – 2012-07-20 09:12:57

+0

感谢家伙,你救了我的命。 ;) – emaleavil 2015-01-14 09:02:57