无法使用Action_View打开Android Webbrowser

时间:2016-01-18 23:22:11

标签: android android-intent android-browser

我试图通过单击textview来打开标准的android webbrowser。 我定义了android:autoLink =" web"在textview中,然后使用onTouchListener启动browserintent:

// 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上的链接时都会收到错误:

  

从Activity上下文外部调用startActivity()需要FLAG_ACTIVITY_NEW_TASK标志。这真的是你想要的吗?

虽然我在新开始的活动中添加了标记,但是有人知道我在这里做错了吗?

我从一个扩展ArrayAdapter的ChatArrayAdapter类调用该活动,但是,我将适当的上下文传递给新启动的活动

1 个答案:

答案 0 :(得分:1)

在您的代码中,您的聊天文字中包含一些网址。为了简化操作,Android具有Linkify类和android:autoLink XML属性。这些有助于在您单击链接时自动突出显示链接并执行标准操作。所有这些都是开箱即用的。

您的chatText可能是TextView。您可以使用我提到的两种方式之一:

在XML中:
chatText的XML中添加以下属性:

android:autoLink="web"  

在代码中:

Linkify.addLinks(chatText,Linkify.WEB_URLS);