您的位置:首页 > 移动开发 > Android开发

Android在程序中浏览网页

2017-06-27 08:18 197 查看
本文是自己学习所做笔记,欢迎转载。但请注明出处:http://blog.csdn.net/jesson20121020

有时须要在程序中浏览一些网页。当然了能够通过调用系统的浏览器来打开浏览。可是大多数情况下,这样的方式并不适用。

  以下给出怎样在程序中浏览网页。先看效果图:





事实上,这里主要是利用了WebView控件及它的一些方法。

   通过WebView的loadUrl(String url)能够装载指定的地址的网页内容,并显示在控件中,上一页和下一页的功能分别相应于WebView的goBack()和goForward()方法;

  布局文件:main.xml

<?

xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/white"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText
android:id="@+id/myEditText"
android:layout_width="230dp"
android:layout_height="wrap_content"
android:layout_margin="10dp"
/>
<Button
android:id="@+id/bt_go"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="转到"
android:layout_toRightOf="@id/myEditText"
android:layout_margin="10dp"
/>

<WebView
android:id="@+id/myWebView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/black"
android:focusable="false"
android:layout_below="@id/bt_go"
android:layout_margin="10dp"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
>
<Button
android:id="@+id/bt_previous"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="上一页"
/>
<Button
android:id="@+id/bt_next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="下一页"
/>

</LinearLayout>

</RelativeLayout>


主要代码:WebViewTest

public class WebViewTest extends Activity
{

private Button go;
private EditText mEditText1;
private WebView mWebView1;
private Button bt_next,bt_previous;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

go = (Button)findViewById(R.id.bt_go);
bt_next = (Button)findViewById(R.id.bt_next);
bt_previous = (Button)findViewById(R.id.bt_previous);
go.setOnClickListener(new ClickEvent());
bt_next.setOnClickListener(new ClickEvent());
bt_previous.setOnClickListener(new ClickEvent());

mEditText1 = (EditText)findViewById(R.id.myEditText);
mEditText1.setText("http://www.baidu.com");
mWebView1 = (WebView) findViewById(R.id.myWebView);

mWebView1.setWebViewClient(new WebViewClient()
{

@Override
public void onPageFinished(WebView view, String url)
{
// TODO Auto-generated method stub
super.onPageFinished(view, url);
//mEditText1.setText(url);
Toast.makeText(WebViewTest.this, "载入完成", Toast.LENGTH_SHORT).show();
}

});

}
class ClickEvent implements OnClickListener{

@Override
public void onClick(View v)
{
switch(v.getId()){
case R.id.bt_go :
/*设定抓取EditText里面的内容*/
String strURI = (mEditText1.getText().toString());
/*?WebView里面显示网页数据*/
mWebView1.loadUrl(strURI);
Toast.makeText(WebViewTest.this,"正在载入"+strURI,Toast.LENGTH_LONG).show();
break;
case R.id.bt_next:
mWebView1.goForward();
//System.out.println(mWebView1.getUrl());
break;
case R.id.bt_previous:
mWebView1.goBack();
break;
}

}
}
}
 

 代码中onPageFinished,能够从字面来理解就是当网页载入完成时触发,可是指网页的框架载入结束,有可能图片并未载入结束。

最后,不要忘了加訪问网络的权限:

<uses-permission android:name="android.permission.INTERNET">
至此,就能够在程序中浏览网页了。你能够在EditText输入对应的网址,从而浏览各种网页,也能够通过上一页和下一页实现网页的前进和后退功能。事实上就是一个简易版的浏览器。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: