2010-06-07 135 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