Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Fedorych
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 44
#1

linkify - Android

26.03.2013, 21:36. Просмотров 720. Ответов 5
Метки нет (Все метки)

Доброго времени суток!
Возникла такая проблемка:
Есть приложение, которое парсит определенный сайт, и строит у себя содержимое этого сайта(а-ля клиент для сайта).
Далее в приложении создаются ссылки на просмотр интересующих тем, но вот беда:
Для создания ссылок использую linkify:
Java
1
2
3
4
5
6
                final TextView record = new TextView(getApplicationContext());
                record.setText(ss);
                        Pattern pattern = Pattern.compile("cyberforum");
                        String scheme = "http://cyberforum.ru";
                        record.setMovementMethod(LinkMovementMethod.getInstance());
                Linkify.addLinks(record, pattern, scheme);
Ну здесь все отрабатывает на ура: создается надпись в виде ссылки.
Как было написано в туториале, по умолчанию при нажатии ссылки linkify открывает браузер по умолчанию и вставляет ссылку, но у меня при нажатии на ссылку выдает следующее:
Кликните здесь для просмотра всего текста

03-26 17:22:55.594: E/AndroidRuntime(341): FATAL EXCEPTION: main
03-26 17:22:55.594: E/AndroidRuntime(341): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
03-26 17:22:55.594: E/AndroidRuntime(341): at android.app.ContextImpl.startActivity(ContextImpl.java:621)
03-26 17:22:55.594: E/AndroidRuntime(341): at android.content.ContextWrapper.startActivity(ContextWrapper.java:258)
03-26 17:22:55.594: E/AndroidRuntime(341): at android.text.style.URLSpan.onClick(URLSpan.java:62)
03-26 17:22:55.594: E/AndroidRuntime(341): at android.text.method.LinkMovementMethod.onTouchEvent(LinkMovementMethod.java:216)
03-26 17:22:55.594: E/AndroidRuntime(341): at android.widget.TextView.onTouchEvent(TextView.java:6847)
03-26 17:22:55.594: E/AndroidRuntime(341): at android.view.View.dispatchTouchEvent(View.java:3885)
03-26 17:22:55.594: E/AndroidRuntime(341): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
03-26 17:22:55.594: E/AndroidRuntime(341): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
03-26 17:22:55.594: E/AndroidRuntime(341): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
03-26 17:22:55.594: E/AndroidRuntime(341): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
03-26 17:22:55.594: E/AndroidRuntime(341): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
03-26 17:22:55.594: E/AndroidRuntime(341): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
03-26 17:22:55.594: E/AndroidRuntime(341): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1691)
03-26 17:22:55.594: E/AndroidRuntime(341): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1125)
03-26 17:22:55.594: E/AndroidRuntime(341): at android.app.Activity.dispatchTouchEvent(Activity.java:2096)
03-26 17:22:55.594: E/AndroidRuntime(341): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1675)
03-26 17:22:55.594: E/AndroidRuntime(341): at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2194)
03-26 17:22:55.594: E/AndroidRuntime(341): at android.view.ViewRoot.handleMessage(ViewRoot.java:1878)
03-26 17:22:55.594: E/AndroidRuntime(341): at android.os.Handler.dispatchMessage(Handler.java:99)
03-26 17:22:55.594: E/AndroidRuntime(341): at android.os.Looper.loop(Looper.java:123)
03-26 17:22:55.594: E/AndroidRuntime(341): at android.app.ActivityThread.main(ActivityThread.java:3683)
03-26 17:22:55.594: E/AndroidRuntime(341): at java.lang.reflect.Method.invokeNative(Native Method)
03-26 17:22:55.594: E/AndroidRuntime(341): at java.lang.reflect.Method.invoke(Method.java:507)
03-26 17:22:55.594: E/AndroidRuntime(341): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
03-26 17:22:55.594: E/AndroidRuntime(341): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
03-26 17:22:55.594: E/AndroidRuntime(341): at dalvik.system.NativeStart.main(Native Method)

Уже голова кипит. Просмотрел туториал, ctackOverflow, но не нашел причины падения приложения при нажатии на ссылку.
Буду рад любой помощи.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
27.03.2013, 12:23     linkify #2
Fedorych,

Java
1
final TextView record = new TextView(getApplicationContext());
замени на

Java
1
final TextView record = new TextView(this);
или

Java
1
final TextView record = new TextView(getContext());
Fedorych
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 44
27.03.2013, 13:55  [ТС]     linkify #3
c4sp3r К сожалению это не решило проблему. Приложени все также крашится при нажатии на эту ссылку, видимо придется через обычный ClickListener делать.
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
27.03.2013, 15:44     linkify #4
Fedorych, лог такой же?

Кликните здесь для просмотра всего текста
android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?


покажи код активити
Fedorych
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 44
29.03.2013, 15:22  [ТС]     linkify #5
c4sp3r спасибо за проявленную помощь, проблема решена. Все дело было действительно в context.
Заменив getApplicationContex() на getBaseContext() все стало отлично работать.
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
29.03.2013, 15:40     linkify #6
Fedorych, а если this указываешь не работает?
Yandex
Объявления
29.03.2013, 15:40     linkify
Ответ Создать тему
Опции темы

Текущее время: 00:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru