如何获取EditText字段以显示当前网页的URL?

时间:2015-11-10 01:17:14

标签: android url android-edittext onclicklistener

我正在制作一个网络浏览器应用,我需要知道如何将当前网页网址打印到 EditText 字段/地址栏。这是我的代码。

public class MainActivity extends Activity implements View.OnClickListener {
    private WebView webView;
    private EditText urlEditText;
    private ProgressBar progress;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.browserview);

    urlEditText = (EditText) findViewById(R.id.urlField);
    webView = (WebView) findViewById(R.id.webView);
    webView.setWebChromeClient(new MyWebViewClient());
    webView.setWebViewClient(new cWebViewClient());
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setUserAgentString("Mozilla/5.0(X11; U; Linux i686; en-US; rv:1.9.0.4) Gecko/20100101 Firefox/4.0");
    webView.loadUrl("http://google.com");
    webView.getUrl();

    progress = (ProgressBar) findViewById(R.id.progressBar);
    progress.setMax(100);

    ImageButton openUrl = (ImageButton) findViewById(R.id.goBtn);
    ImageButton back = (ImageButton) findViewById(R.id.bckBtn);
    ImageButton fwd = (ImageButton) findViewById(R.id.fwdBtn);
    ImageButton ref = (ImageButton) findViewById(R.id.refBtn);
    ImageButton home = (ImageButton) findViewById(R.id.homeBtn);

    back.setOnClickListener(this);
    fwd.setOnClickListener(this);
    ref.setOnClickListener(this);
    home.setOnClickListener(this);
    openUrl.setOnClickListener(this);

}

        @Override
        public void onClick(View v) {
            //TODO Auto-generated method sub
            switch (v.getId()) {
                case R.id.goBtn:
                    String url = urlEditText.getText().toString();
                    webView.loadUrl(url);
                    break;
                case R.id.bckBtn:
                    if (webView.canGoBack())
                        webView.goBack();
                    break;
                case R.id.fwdBtn:
                    if (webView.canGoForward())
                        webView.goForward();
                    break;
                case R.id.refBtn:
                        webView.reload();
                    break;
                case R.id.homeBtn:
                        webView.clearHistory();
                    break;
                default:
                    break;
            }

                MainActivity.this.progress.setProgress(0);
        }




private class MyWebViewClient extends WebChromeClient implements com.continuumwear.continuumbrowser.MyWebViewClient {


    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }

    @Override
    public void onProgressChanged(WebView view, int newProgress) {
        MainActivity.this.setValue(newProgress);
        super.onProgressChanged(view, newProgress);
    }

}
@Override
public void onBackPressed()
{
    if (webView.canGoBack())
    {
        webView.goBack();
    }
    else
    {
        super.onBackPressed();
    }
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.web_view, menu);
    return true;
}

public void setValue(int progress) {

    this.progress.setProgress(progress);
}`

1 个答案:

答案 0 :(得分:1)

public class MainActivity extends Activity implements View.OnClickListener {
    private WebView webView;
    private EditText urlEditText;
    private ProgressBar progress;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.browserview);

    urlEditText = (EditText) findViewById(R.id.urlField);
    webView = (WebView) findViewById(R.id.webView);
    webView.setWebChromeClient(new MyWebViewClient());
    webView.setWebViewClient(new cWebViewClient());
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setUserAgentString("Mozilla/5.0(X11; U; Linux i686; en-US; rv:1.9.0.4) Gecko/20100101 Firefox/4.0");
    webView.loadUrl("http://google.com");
    webView.getUrl();

    progress = (ProgressBar) findViewById(R.id.progressBar);
    progress.setMax(100);

    ImageButton openUrl = (ImageButton) findViewById(R.id.goBtn);
    ImageButton back = (ImageButton) findViewById(R.id.bckBtn);
    ImageButton fwd = (ImageButton) findViewById(R.id.fwdBtn);
    ImageButton ref = (ImageButton) findViewById(R.id.refBtn);
    ImageButton home = (ImageButton) findViewById(R.id.homeBtn);

    back.setOnClickListener(this);
    fwd.setOnClickListener(this);
    ref.setOnClickListener(this);
    home.setOnClickListener(this);
    openUrl.setOnClickListener(this);

}

        @Override
        public void onClick(View v) {
            //TODO Auto-generated method sub
            switch (v.getId()) {
                case R.id.goBtn:
                    String url = urlEditText.getText().toString();
                    webView.loadUrl(url);
                    break;
                case R.id.bckBtn:
                    if (webView.canGoBack())
                        webView.goBack();
                    break;
                case R.id.fwdBtn:
                    if (webView.canGoForward())
                        webView.goForward();
                    break;
                case R.id.refBtn:
                        webView.reload();
                    break;
                case R.id.homeBtn:
                        webView.clearHistory();
                    break;
                default:
                    break;
            }

                MainActivity.this.progress.setProgress(0);
        }




private class MyWebViewClient extends WebChromeClient implements com.continuumwear.continuumbrowser.MyWebViewClient {
@Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        try {
            urlEditText.setText(url);
        } catch (Throwable e) {

        } 
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }

    @Override
    public void onProgressChanged(WebView view, int newProgress) {
        MainActivity.this.setValue(newProgress);
        super.onProgressChanged(view, newProgress);
    }

}
@Override
public void onBackPressed()
{
    if (webView.canGoBack())
    {
        webView.goBack();
    }
    else
    {
        super.onBackPressed();
    }
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.web_view, menu);
    return true;
}

public void setValue(int progress) {

    this.progress.setProgress(progress);
}