我创建了一个功能正常的网络浏览器,但是我正在尝试实现一些代码,如果用户未输入.com / .org等后缀,则该代码将使EditText地址栏搜索Google。我需要它可以像其他任何现代浏览器一样工作,允许用户从地址栏中直接搜索。我尝试了几种不同的if / else语句,这些语句应该可以达到预期的结果,但是每个语句都会引发某种错误。有什么想法吗?
这是有效的代码,但没有达到预期的结果,它仅调用URL:
WebView webView;
private ProgressBar progressBar;
String current_page_url = "http://www.google.com";
CoordinatorLayout coordinatorLayout;
EditText editText;
Button btnLaunchWebsite2;
String edittextvalue;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_browser);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle("");
toolbar.setNavigationIcon(R.drawable.ic_arrow_back);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
if (getIntent().getExtras() != null) {
current_page_url = getIntent().getStringExtra("url");
}
webView = findViewById(R.id.webView);
progressBar = findViewById(R.id.progressBar);
initWebView();
webView.loadUrl(current_page_url);
btnLaunchWebsite2 = findViewById(R.id.btnLaunchWebsite2);
editText = findViewById(R.id.editText);
coordinatorLayout = findViewById(R.id.main_content);
btnLaunchWebsite2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String editextvalue = editText.getText().toString();
if (!editextvalue.startsWith("http://"))
editextvalue = "http://" + editextvalue;
String url = editextvalue;
webView.loadUrl(url);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}
});
}
private void initWebView() {
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
progressBar.setVisibility(View.VISIBLE);
current_page_url = url;
invalidateOptionsMenu();
}
在问题区域,这是我尝试过的代码,但是我尝试尝试的每种方式都会引发错误:
btnLaunchWebsite2.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View arg0) {
String url = editText.getText().toString();
if (url != " ") {
}
if (url.contains(".") && url.contains(" ") || url.length() < 4) {
url = "https://www.google.com.np/search?q="
+ editText.getText().toString();
webView.loadUrl(url);
}
if (url.contains(".com") || url.contains(".")) {
if (url.contains("http://") || url.contains("https://")) {
webView.loadUrl(url);
} else if (editText.getText().toString().contentEquals("")) {
} else {
url = "http://" + editText.getText().toString();
webView.loadUrl(url);
}
} else {
if (editText.getText().toString().contentEquals("")) {
} else {
url = "https://www.google.com.np/search?q="
+ editText.getText().toString();
webView.loadUrl(url);
}
}
}