我有一个Webview以及一个编辑文本字段作为地址栏,但问题是,每当我输入“http://www.google.co.in”时,地址栏工作正常,但当我输入“Google”时,它不起作用。下面是我的网页浏览
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
EditText URLText;
Button GoButton;
WebView Browser;
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
URLText = (EditText)findViewById(R.id.URL);
GoButton = (Button)findViewById(R.id.Go);
Browser = (WebView) findViewById(R.id.WebEngine);
Browser.loadUrl("http://www.google.co.in/");
GoButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Browser.setWebViewClient(new MyWebViewClient());
Browser.loadUrl("http://"+URLText.getText().toString());
}
});
}
}
答案 0 :(得分:0)
我做了同样的事情。请按照以下代码完成任务。
case R.id.btnGo:
if (medSearch.getText().toString().startsWith("http://")
&& medSearch.getText().toString().endsWith(".com") || medSearch.getText().toString().endsWith(".in") || medSearch.getText().toString().endsWith(".ac.in")) {
mWebView.loadUrl(medSearch.getText().toString());
} else {
mWebView.loadUrl("http://" + medSearch.getText().toString()
+ ".com");
}
break;
其中,medSearch是用于搜索的EditText。
在Patteren和Matcher的帮助下,你也可以做同样的事情来获得完美的结果:
private boolean isValidUrl(String strUrl) {
Pattern mUrlPatteren = Patterns.WEB_URL;
Matcher mUrlMatcher = mUrlPatteren.matcher(strUrl);
if(mUrlMatcher.matches())
return true;
else
return false;
}