Как заставить EditText перейти на URL или выполнить поиск в Google? - PullRequest
1 голос
/ 21 мая 2019

Я создал работающий веб-браузер, но я пытаюсь реализовать код, который будет выполнять поиск в адресной строке EditText в Google, если пользователь не введет такой суффикс, как .com / .org и т. Д. Мне это нужно работать как любой другой современный браузер, который позволит пользователю осуществлять поиск прямо из адресной строки. Я пробовал несколько различных операторов 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);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...