Android在程序中浏览网页
来源:程序员人生 发布时间:2014-11-07 08:34:42 阅读次数:3223次
本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020
有时需要在程序中阅读1些网页,固然了可以通过调用系统的阅读器来打开阅读,但是大多数情况下,这类方式其实不适用。
下面给出如何在程序中阅读网页,先看效果图:
其实,这里主要是利用了WebView控件及它的1些方法。
通过WebView的loadUrl(String url)可以装载指定的地址的网页内容,并显示在控件中,上1页和下1页的功能分别对应于WebView的goBack()和goForward()方法;
布局文件:main.xml
<?xml version="1.0" encoding="utf⑻"?>
<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="上1页"
/>
<Button
android:id="@+id/bt_next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="下1页"
/>
</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输入相应的网址,从而阅读各种网页,也能够通过上1页和下1页实现网页的前进和后退功能,其实就是1个简易版的阅读器。
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠