我输入字符串的连接有问题。
这是班级:
package com.isma.multisitesearch.Siti;
import com.isma.multisitesearch.R;
import com.isma.multisitesearch.Webviews.GoogleWebView;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class Google extends Activity implements OnClickListener {
private String TAG_ACT = "Caricamento ricerca";
public EditText googletext;
private Button googlebutton;
private String googleurl = "https://www.google.it/search?q=";
public static String newgoogleurl;
public String space = " ";
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.google);
googletext = (EditText) findViewById(R.id.googletext);
googlebutton = (Button) findViewById(R.id.googlebutton);
googlebutton.setOnClickListener(this);
newgoogleurl = googleurl + googletext.getText().toString();
newgoogleurl.replaceAll(space, "%20");
System.out.println(newgoogleurl);
}
@Override
public void onClick(View v) {
Log.v(TAG_ACT, "in corso");
Intent intent = new Intent(Google.this, GoogleWebView.class);
startActivity(intent);
}
}
这是我想要连接的WebView
:
package com.isma.multisitesearch.Webviews;
import com.isma.multisitesearch.R;
import com.isma.multisitesearch.Siti.Google;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class GoogleWebView extends Activity {
private WebView googlewebview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.googlewebview);
googlewebview = (WebView) findViewById(R.id.googlewebview);
googlewebview.getSettings().setJavaScriptEnabled(true);
googlewebview.getSettings().setLoadsImagesAutomatically(true);
googlewebview.setWebViewClient(new WebViewClient());
googlewebview.loadUrl(Google.newgoogleurl);
}
}
该应用程序运行正常,但当我在EditText
中编写搜索文本时,谷歌但我得到了主页,您可以在其中输入搜索而不是已输入搜索文本的网址。< / p>
我希望你知道帮助我,在此之后我能够运行该应用程序。
答案 0 :(得分:0)
请注意
newgoogleurl.replaceAll(space, "%20");
无效,您需要编码:
newgoogleurl = newgoogleurl.replaceAll(space, "%20");
看看这里:
http://javarevisited.blogspot.it/2011/12/java-string-replace-example-tutorial.html
答案 1 :(得分:0)
尝试以下代码:
String url;
url = googleurl+googletext.getText().toString();
if( url.contains(" ")){
newgoogleurl=url.replaceAll(" ","%20");
}else{
newgoogleurl=url;
}
这也包含验证部分。
答案 2 :(得分:0)
字符串是不可变的。这意味着您无法修改String实例,并且每次要修改它时都需要创建一个新实例。
在您的情况下,replaceAll
不会修改您调用它的String,而是返回一个应用了您的修改的新String。
这就是为什么您需要将返回值影响到String的引用。
newgoogleurl = newgoogleurl.replaceAll(space, "%20");
此外,您应该阅读replaceAll
的文档,因为我认为它不符合您的要求。您可能想要使用replace
。
答案 3 :(得分:0)
试试这个:
@Override
public void onClick(View v) {
newgoogleurl = googleurl + googletext.getText().toString();
newgoogleurl = newgoogleurl.replaceAll(space, "%20");
Log.v(TAG_ACT, "in corso");
Intent intent = new Intent(Google.this, GoogleWebView.class);
startActivity(intent);
}