我正在制作一个网络浏览器应用,我需要知道如何将当前网页网址打印到 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);
}`
答案 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);
}