Android - проблема Linkify - PullRequest
       7

Android - проблема Linkify

5 голосов
/ 08 июня 2010

У меня возникли проблемы с линкифом, который я использую в своем пользовательском адаптере. По какой-то причине я получаю следующий трек стека при нажатии на одну из ссылок:

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);

Я понимаю, что говорит ошибка, но я не уверен, как ее исправить. У кого-нибудь есть какие-либо идеи? Заранее спасибо за помощь !

1 Ответ

18 голосов
/ 08 июня 2010

Оказывается, ответ на этот вопрос намного проще, чем я первоначально думал.Проблема заключалась в том, что, когда я передавал контекст своему пользовательскому адаптеру, я передавал getApplicationContext () , который отличается от использования this идентификатор.

НЕПРАВИЛЬНЫЙ ПУТЬ :

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

ПРАВИЛЬНЫЙ ПУТЬ :

CustomAdapter mAdapter = new CustomAdapter( 
                this,
                itemList); 
...