我的主要活动有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
}
无法加载预期的查询。有什么建议吗?
答案 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);