2015-03-08 83 views
1

我的主要活动有2个按钮。一个将文本传输到Activity2和其他传输网址到Activity2。从一个活动发送网址到另一个

代码段主要活动来发送URL如下:

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 

} 

预期的查询不加载。有什么建议么?

回答

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.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); 
     } 
    } 
+0

我删除了Uri.Parse(),但是,我仍然无法得到webactivity加载。 – Shawn 2015-03-08 20:49:41

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); 
+0

我确实删除了Uri.parse,但是,Web活动仍然无法加载。 – Shawn 2015-03-08 20:52:09

+0

尝试在'HomeActivity'的URL中添加'http://'来除去'Uri.parse' – ByteHamster 2015-03-08 21:49:47

相关问题