Android Autolink для запуска WebView

Я использую атрибут autoLink="web" в TextView для запуска браузера. Однако я хочу запустить myActivity с помощью WebView, когда я нажимаю ссылки в TextView. Возможно ли перехватить событие щелчка и вызвать startActivity?

Заранее спасибо, Джейсон


person Jason Kim    schedule 28.05.2010    source источник


Ответы (2)


Да, это довольно легко сделать :)

  • Создайте активность с WebView и соответствующими настройками.
  • В TextView вместо этого разрешите ссылкам активировать намерение.
  • Сделайте это намерение тем, которое открывает действие с WebView в нем.
  • В этом объекте намерения выполните myIntent.putExtra() и добавьте URL-адрес в качестве дополнительного
  • В действии, содержащем WebView, используйте saveInstanceState.getExtras(), чтобы получить URL-адрес и загрузить его в WebView.

Вы можете получить больше информации о намерениях и о том, как их использовать здесь:

http://developer.android.com/guide/topics/intents/intents-filters.html

Вы также можете посмотреть здесь приложение Notepad Tutorial, которое содержит несколько очень простых примеров работы намерений.

person HXCaine    schedule 28.05.2010
comment
Спасибо за ответ, T3Roar. но я не могу понять вашу вторую инструкцию, разрешающую ссылку вместо этого запускать намерение. Вы имеете в виду, что мне не нужно что-то делать для просмотра текста? Как я могу сделать свое собственное намерение по ссылке в текстовом представлении для запуска определенной деятельности? - person Jason Kim; 14.06.2010
comment
Взгляните на эту статью. Его пример вызывал ShowDialog, когда нажимались ссылки, но вместо этого вы можете запустить намерение для своей программы. blog.elsdoerfer.name/2009/10/29 / - person HXCaine; 15.06.2010

Вы спрашиваете о настройке autolink в TextViews для автоматической обработки URL-адресов в TextViews. Однако поведение по умолчанию заключается в открытии веб-страницы во внешнем браузере, так как же вместо этого запустить действие (например)?

Под капотом автоссылка обрабатывается для TextView с помощью LinkMovementMethod, и его поведение сложно настроить. Теперь существует BetterLinkMovementMethod, более подробно описанный в это сообщение в блоге. Всего несколькими строками кода можно изменить TextView autolinks, чтобы он запускал активность или все виды других действий, которые можно настроить по желанию.

person auspicious99    schedule 23.02.2021