2016-01-18 2 views
0

Я пытаюсь открыть стандартный веб-браузер для Android, нажав на текстовое изображение. Я определил андроида: Автоссылка = «Интернет» в TextView, а затем использовать onTouchListener начать browserintent:Не удается открыть Android Webbrowser с помощью Action_View

// On Touch Listener 

chatText.setOnTouchListener(new OnTouchListener(){ 
      @Override 
      public boolean onTouch(View view, MotionEvent event) { 
         // view.performClick(); 
         view.onTouchEvent(event); 

         if (event.getAction() == MotionEvent.ACTION_DOWN){ 
          view.performClick(); 
          openBrowser(chatText.getText().toString()); 
         } 
       return false; 
      } 
     }); 

// Start Browser function 

public void openBrowser(String url) { 
    Intent webIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    if (webIntent.resolveActivity(context.getPackageManager()) != null) { 
     context.startActivity(webIntent); 
    } 
} 

Однако, каждый раз, когда я нажимаю ссылку на мой TextView я получаю ошибку:

Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

Хотя у меня есть флаги, добавленные к моей недавно начатой ​​деятельности, кто-нибудь знает, что я делаю неправильно здесь?

Я зову деятельность от класса ChatArrayAdapter, который проходит в ArrayAdapter, однако, я передать соответствующий контекст вновь начали деятельность

ответ

1

Going над кодом, ваш текстовый чат имеют некоторые URL в нем. Чтобы упростить работу, у Android есть класс Linkify и атрибут XML android:autoLink. Они помогают автоматически выделять ссылки и выполнять стандартное действие при нажатии на них. Все это обрабатывается из коробки.

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

В XML:
В XML ваши chatText добавим следующий атрибут:

android:autoLink="web" 

В коде:

Linkify.addLinks(chatText,Linkify.WEB_URLS); 
Смежные вопросы