将网址从一个活动发送到另一个活动

时间:2015-03-08 20:25:40

标签: android url android-intent

我的主要活动有2个按钮。一个用于将文本传输到Activity2,另一个用于将URL传输到Activity2。

发送网址的主要活动的代码段如下:

 else if (v.getId()==R.id.SendUrl){
                    String query = mEditText.getText().toString();
                    String url ="www.google.com/#q="+query;
                    Intent intent = new Intent(this, Activity2.class);
                    intent.putExtra(EXTRA_MESSAGE,Uri.parse(url));
                    startActivity(intent);

                }

接收活动类具有以下代码:

public class Activity2 extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity2);
    // get intent from HomeActivity

    Intent intent = getIntent();

    // get extra message
    String message = intent.getStringExtra(HomeActivity.EXTRA_MESSAGE);

    //render in textview
    TextView textView = (TextView)findViewById(R.id.viewtext);
    textView.setTextSize(40);
    textView.setText(message);

    WebView webView=(WebView)findViewById(R.id.webNavigator);
    webView.loadUrl(intent.getStringExtra(HomeActivity.EXTRA_MESSAGE));
    //show it in content view

}

无法加载预期的查询。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

你也需要将url作为字符串传递给 -

String query = mEditText.getText().toString();
                    String url ="http://www.google.com/#q="+query;
                    Intent intent = new Intent(this, Activity2.class);
                    intent.putExtra(EXTRA_MESSAGE,url);
                    startActivity(intent);

不要使用Uri.parse(); 如果你想使用uri,你可以去 - 以下 -

String uri = Uri.parse("http://...")
                .buildUpon()
                .appendQueryParameter("key", "val")
                .build().toString();

您也可以查看this

将WebView客户端添加到您的webview中

webView.setWebViewClient(new MyWebViewClient());


And the MyWebViewClient class is an inner class as-

  private class MyWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            return super.shouldOverrideUrlLoading(view,url);
        }
    }

答案 1 :(得分:0)

intent.putExtra(EXTRA_MESSAGE, Uri.parse(url));

您在此处传递了Uri

webView.loadUrl(intent.getStringExtra(HomeActivity.EXTRA_MESSAGE));

并尝试在此处获得String。返回的String始终为null,因为额外费用不是String

如果您传递这样的网址,则只需更改一行,代码即可运行:

intent.putExtra(EXTRA_MESSAGE, url);