如何使EditText转到URL或搜索Google?

时间:2019-05-21 00:46:44

标签: android url android-edittext

我创建了一个功能正常的网络浏览器,但是我正在尝试实现一些代码,如果用户未输入.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);
        }
    }
}

0 个答案:

没有答案