android的互联网开发

时间:2022-03-08 20:58:07

一、java socket编程的介绍http://www.cnblogs.com/linzheng/archive/2011/01/23/1942328.html

二、URL、UrlConnection网络编程介绍

三、HTTP网络编程介绍

http协议-简介 http协议-C#获取网页源代码 http协议-多线程文件传输

四、 Web Service网络编程介绍

五、 android WebView网络编程介绍

实例代码-----------------------------------------------

 

服务器端模拟

MyServer.java

android的互联网开发android的互联网开发代码
   
   
   
package com.amaker.socket;

import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
*
* Socket 服务器,向客户端写Hello Android!
*/
public class MyServer {
public static void main(String[] args) {
try {
ServerSocket server
= new ServerSocket( 8888 );
while ( true ){
Socket client
= server.accept();
OutputStream out
= client.getOutputStream();
String msg
= " Hello Android! " ;
out.write(msg.getBytes());
client.close();
}
}
catch (IOException e) {
e.printStackTrace();
}
}
}

LoginServlet.java

android的互联网开发android的互联网开发代码
   
   
   
package com.amaker.http;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
*
* 响应登录Servlet
*/
public class LoginServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

String username
= request.getParameter( " username " );
String password
= request.getParameter( " password " );
System.out.println(username
+ " : " + password);
response.setContentType(
" text/html " );
response.setCharacterEncoding(
" utf-8 " );
PrintWriter out
= response.getWriter();
String msg
= null ;
if (username != null && username.equals( " admin " ) && password != null && password.equals( " 1 " )){
msg
= " 登录成功! " ;
}
else {
msg
= " 登录失败! " ;
}
out.print(msg);
out.flush();
out.close();
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}

}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
 xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 
 
  <servlet>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>com.amaker.http.LoginServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/servlet/LoginServlet</url-pattern>
  </servlet-mapping>

</web-app>

android客户端

MainActivity.java

android的互联网开发android的互联网开发代码
   
   
   
package com.amaker.ch13;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.amaker.ch13.http.LoginActivity;
import com.amaker.ch13.socket.TestSocketActivity;
import com.amaker.ch13.url.TestURLActivity;
import com.amaker.ch13.webservice.TestWebServiceActivity;
import com.amaker.ch13.webservice.WeatherActivity;
import com.amaker.ch13.webview.TestWebViewActivity;

public class MainActivity extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
// 菜单项数组
String[] items = { " 测试 Socket " , " 测试URL、UrlConnection " , " 测试 HTTP " , " 测试 Web Service " , " 天气预报 " , " Test WebView " };
// 将菜单项数组设置为ListView的列表项展示
setListAdapter( new ArrayAdapter < String > ( this ,
android.R.layout.simple_list_item_1, items));
getListView().setTextFilterEnabled(
true );
}

// 响应菜单项的单击事件
protected void onListItemClick(ListView l, View v, int position, long id) {
Intent intent
= null ;
switch (position) {
case 0 :
intent
= new Intent(MainActivity. this ,TestSocketActivity. class );
startActivity(intent);
break ;
case 1 :
intent
= new Intent(MainActivity. this ,TestURLActivity. class );
startActivity(intent);
break ;
case 2 :
intent
= new Intent(MainActivity. this ,LoginActivity. class );
startActivity(intent);
break ;
case 3 :
intent
= new Intent(MainActivity. this ,TestWebServiceActivity. class );
startActivity(intent);
break ;
case 4 :
intent
= new Intent(MainActivity. this ,WeatherActivity. class );
startActivity(intent);
break ;
case 5 :
intent
= new Intent(MainActivity. this ,TestWebViewActivity. class );
startActivity(intent);
break ;
}
}
}

AndroidManifest.xml

android的互联网开发android的互联网开发代码
   
   
   
<? xml version="1.0" encoding="utf-8" ?>
< manifest xmlns:android ="http://schemas.android.com/apk/res/android"
package
="com.amaker.ch13"
android:versionCode
="1"
android:versionName
="1.0" >
< application android:icon ="@drawable/icon" android:label ="@string/app_name" >
< activity android:name =".MainActivity"
android:label
="@string/app_name" >
< intent-filter >
< action android:name ="android.intent.action.MAIN" />
< category android:name ="android.intent.category.LAUNCHER" />
</ intent-filter >
</ activity >

< activity android:name ="com.amaker.ch13.http.LoginActivity" />

< activity android:name ="com.amaker.ch13.socket.TestSocketActivity" />

< activity android:name ="com.amaker.ch13.url.TestURLActivity" />

< activity android:name ="com.amaker.ch13.webservice.TestWebServiceActivity" />

< activity android:name ="com.amaker.ch13.webservice.WeatherActivity" />

< activity android:name ="com.amaker.ch13.webview.TestWebViewActivity" />

</ application >
< uses-sdk android:minSdkVersion ="3" />

< uses-permission android:name ="android.permission.ACCESS_NETWORK_STATE" ></ uses-permission >
< uses-permission android:name ="android.permission.INTERNET" ></ uses-permission >
</ manifest >

 一、socket编程

 TestSocketActivity.java

android的互联网开发android的互联网开发代码
   
   
   
package com.amaker.ch13.socket;

import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;
import java.net.UnknownHostException;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import com.amaker.ch13.R;
/**
*
* Android Socket 客户端接收服务器信息
*/
public class TestSocketActivity extends Activity {
private TextView myTextView;
@Override
public void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.socket);
myTextView
= (TextView)findViewById(R.id.msgTextView01);
try {
Socket socket
= new Socket( " 192.168.1.101 " , 8888 );
InputStream in
= socket.getInputStream();
byte [] buffer = new byte [in.available()];
in.read(buffer);
String msg
= new String(buffer);
myTextView.setText(msg);
}
catch (UnknownHostException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
}

socket.xml

android的互联网开发android的互联网开发代码
   
   
   
<? xml version="1.0" encoding="utf-8" ?>
< LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"
android:orientation
="vertical"
android:layout_width
="fill_parent"
android:layout_height
="fill_parent"
>

< TextView
android:text ="等待接收服务器信息..."
android:id
="@+id/msgTextView01"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content" ></ TextView >

</ LinearLayout >

 二、URL、UrlConnection编程

TestURLActivity.java

android的互联网开发android的互联网开发代码
   
   
   
package com.amaker.ch13.url;

import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.widget.ImageView;

import com.amaker.ch13.R;
/**
* 通过URL进行网络连接
*/
public class TestURLActivity extends Activity {
private ImageView imageView;
@Override
public void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.test_url);
imageView
= (ImageView)findViewById(R.id.ImageView01);

String urlStr
= " http://192.168.1.101:8080/Chapter_13_Networking_server/upload/zs.jpg " ;

try {
URL url
= new URL(urlStr);
// 1. 直接使用URL获得输入流
// InputStream in = url.openStream();

// 2. 获得URLconnection
URLConnection conn = url.openConnection();
InputStream in
= conn.getInputStream();

// 3. 如果是HTTP协议可以使用HttpURLConnection
// HttpURLConnection httpConn = (HttpsURLConnection)conn;
// in = httpConn.getInputStream();

Bitmap bm
= BitmapFactory.decodeStream(in);

imageView.setImageBitmap(bm);

}
catch (Exception e) {
e.printStackTrace();
}
}
}

test_url.xml

android的互联网开发android的互联网开发代码
   
   
   
<? xml version="1.0" encoding="utf-8" ?>
< LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"
android:orientation
="vertical"
android:layout_width
="fill_parent"
android:layout_height
="fill_parent"
>

< ImageView
android:id ="@+id/ImageView01"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content" ></ ImageView >

</ LinearLayout >

 三、 HTTP编程

LoginActivity.java

android的互联网开发android的互联网开发代码
   
   
   
package com.amaker.ch13.http;

import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

import com.amaker.ch13.R;
public class LoginActivity extends Activity {
/*
* 声明使用到的Button和EditText视图组件
*/
private Button cancelBtn,loginBtn;
private EditText userEditText,pwdEditText;

@Override
public void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.http1);
/*
* 实例化视图组件
*/
cancelBtn
= (Button)findViewById(R.id.cancelButton);
loginBtn
= (Button)findViewById(R.id.loginButton);

userEditText
= (EditText)findViewById(R.id.userEditText);
pwdEditText
= (EditText)findViewById(R.id.pwdEditText);

/*
* 设置登录监听器
*/
loginBtn.setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
String username
= userEditText.getText().toString();
String pwd
= pwdEditText.getText().toString();
login(username,pwd);
}
});

/*
* 设置取消监听器
*/
cancelBtn.setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});


}

/*
* 定义一个显示提示信息的对话框
*/
private void showDialog(String msg){
AlertDialog.Builder builder
= new AlertDialog.Builder( this );
builder.setMessage(msg)
.setCancelable(
false )
.setPositiveButton(
" 确定 " , new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert
= builder.create();
alert.show();
}
/*
* 通过用户名称和密码进行查询,发送Post请求,获得响应结果。
*/
private void login(String username,String password){
// 1. 使用 HttpURLConnection 实现
/* String urlStr = " http://192.168.1.101 :8080/Chapter_13_Networking_server/servlet/LoginServlet?";
String queryString = "username="+username+"&password="+password;
urlStr+=queryString;
try {
URL url = new URL(urlStr);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();

if(conn.getResponseCode()==HttpURLConnection.HTTP_OK){
InputStream in = conn.getInputStream();
byte[] b = new byte[in.available()];
in.read(b);
String msg = new String(b);
showDialog(msg);
in.close();
}
conn.disconnect();
} catch (Exception e) {
showDialog(e.getMessage());
}
*/
// 2. 使用 Apache HTTP 客户端实现
String urlStr = " http://192.168.1.101:8080/Chapter_13_Networking_server/servlet/LoginServlet " ;
HttpPost request
= new HttpPost(urlStr);
// 如果传递参数个数比较多的话,我们可以对传递的参数进行封装
List < NameValuePair > params = new ArrayList < NameValuePair > ();
params.add(
new BasicNameValuePair( " username " , username));
params.add(
new BasicNameValuePair( " password " , password));
try {
request.setEntity(
new UrlEncodedFormEntity(params,HTTP.UTF_8));
HttpResponse response
= new DefaultHttpClient().execute(request);
if (response.getStatusLine().getStatusCode() == 200 ){
String msg
= EntityUtils.toString(response.getEntity());
showDialog(msg);
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}

http1.xml

android的互联网开发android的互联网开发代码
   
   
   
<? xml version="1.0" encoding="utf-8" ?>
< LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"
android:orientation
="vertical" android:layout_width ="fill_parent"
android:layout_height
="fill_parent" >

< TableLayout
android:layout_width ="fill_parent"
android:layout_height
="fill_parent"
android:stretchColumns
="1" >
< TableRow >
< TextView
android:text ="用户名称:"
android:id
="@+id/TextView"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content"
></ TextView >

< EditText
android:text =""
android:id
="@+id/userEditText"
android:layout_width
="fill_parent"
android:layout_height
="wrap_content" ></ EditText >
</ TableRow >


< TableRow >
< TextView
android:text ="用户密码:"
android:id
="@+id/TextView"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content"
></ TextView >

< EditText
android:text =""
android:id
="@+id/pwdEditText"
android:layout_width
="fill_parent"
android:layout_height
="wrap_content"
android:password
="true" ></ EditText >
</ TableRow >

< TableRow android:gravity ="right" >
< Button
android:text ="取消"
android:id
="@+id/cancelButton"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content" ></ Button >

< Button
android:text ="登陆"
android:id
="@+id/loginButton"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content" ></ Button >
</ TableRow >

</ TableLayout >

</ LinearLayout >

 四、Web Service编程

TestWebServiceActivity.java

android的互联网开发android的互联网开发代码
   
   
   
package com.amaker.ch13.webservice;

import java.io.IOException;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.MarshalBase64;
import org.ksoap2.serialization.PropertyInfo;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.AndroidHttpTransport;
import org.xmlpull.v1.XmlPullParserException;

import android.app.Activity;
import android.os.Bundle;

public class TestWebServiceActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
String serviceNamespace
= " http://tempuri.org/ " ;
String serviceURL
= " http://www.ayandy.com/Service.asmx " ;
String methodName
= " getWeatherbyCityName " ;

SoapObject request
= new SoapObject(serviceNamespace, methodName);

PropertyInfo info
= new PropertyInfo();
info.setName(
" theCityName " );
info.setValue(
" 北京 " );

PropertyInfo info2
= new PropertyInfo();
info2.setName(
" theDayFlag " );
info2.setValue(
" 1 " );

request.addProperty(info);
request.addProperty(info2);

SoapSerializationEnvelope envelope
= new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut
= request;
(
new MarshalBase64()).register(envelope);

AndroidHttpTransport ht
= new AndroidHttpTransport(serviceURL);

ht.debug
= true ;

try {
ht.call(
" http://tempuri.org/getWeatherbyCityName " , envelope);
if (envelope.getResponse() != null ){
System.out.println(envelope.getResult());
}
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


}
}

WeatherActivity.java

android的互联网开发android的互联网开发代码
   
   
   
package com.amaker.ch13.webservice;

import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.AdapterView.OnItemSelectedListener;
import com.amaker.ch13.R;

/**
*
* 显示天气预报
*/
public class WeatherActivity extends Activity {
// 声明视图组件
private TextView displayTextView;
private Spinner spinner;
@Override
public void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);

setContentView(R.layout.weather);
// 实例化视图组件
displayTextView = (TextView) findViewById(R.id.displayTextView03);
spinner
= (Spinner) findViewById(R.id.citySpinner01);

List
< String > citys = WebServiceUtil.getCityList();
ArrayAdapter a
= new ArrayAdapter( this ,
android.R.layout.simple_spinner_dropdown_item, citys);
spinner.setAdapter(a);

spinner.setOnItemSelectedListener(
new OnItemSelectedListener() {

@Override
public void onItemSelected(AdapterView <?> arg0, View arg1,
int arg2, long arg3) {
String msg
= WebServiceUtil.getWeatherMsgByCity(spinner.getSelectedItem().toString());
displayTextView.setText(msg);
}
@Override
public void onNothingSelected(AdapterView <?> arg0) {

}
});


}
}

WebServiceUtil.java

android的互联网开发android的互联网开发代码
   
   
   
package com.amaker.ch13.webservice;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.MarshalBase64;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.AndroidHttpTransport;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xmlpull.v1.XmlPullParserException;

/**
*
* 天气预报工具类
*/
public class WebServiceUtil {

/*
* 通过传递城市名称获得天气信息
*/
public static String getWeatherMsgByCity(String cityName) {
String url
= " http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx/getWeather " ;
HttpPost request
= new HttpPost(url);
List
< NameValuePair > params = new ArrayList < NameValuePair > ();
params.add(
new BasicNameValuePair( " theCityCode " , cityName));
params.add(
new BasicNameValuePair( " theUserID " , "" ));
String result
= null ;
try {
UrlEncodedFormEntity entity
= new UrlEncodedFormEntity(params,
HTTP.UTF_8);
request.setEntity(entity);
HttpResponse response
= new DefaultHttpClient().execute(request);
if (response.getStatusLine().getStatusCode() == 200 ) {
result
= EntityUtils.toString(response.getEntity());
return parse2(result);
}
}
catch (Exception e) {
e.printStackTrace();
}
return null ;
}

/*
* 使用ksoap,获得城市列表
*/
public static List < String > getCityList() {
// 命名空间
String serviceNamespace = " http://WebXml.com.cn/ " ;
// 请求URL
String serviceURL = " http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx " ;
// 调用的方法
String methodName = " getRegionProvince " ;
// 实例化SoapObject对象
SoapObject request = new SoapObject(serviceNamespace, methodName);
// 获得序列化的Envelope
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.bodyOut
= request;
(
new MarshalBase64()).register(envelope);

// Android传输对象
AndroidHttpTransport ht = new AndroidHttpTransport(serviceURL);
ht.debug
= true ;

try {
// 调用
ht.call( " http://WebXml.com.cn/getRegionProvince " , envelope);
if (envelope.getResponse() != null ) {
return parse(envelope.bodyIn.toString());
}
}
catch (IOException e) {
e.printStackTrace();
}
catch (XmlPullParserException e) {
e.printStackTrace();
}

return null ;
}

/*
* 对天气信息XML文件进行解析
*/
private static String parse2(String str){
String temp;
String[] temps;
List list
= new ArrayList();
StringBuilder sb
= new StringBuilder( "" );
if (str != null && str.length() > 0 ){
temp
= str.substring(str.indexOf( " <string> " ));
temps
= temp.split( " </string> " );
for ( int i = 0 ; i < temps.length; i ++ ) {
sb.append(temps[i].substring(
12 ));
sb.append(
" \n " );
}
}
return sb.toString();
}

/*
* 对得到的城市XML信息进行解析
*/
private static List < String > parse(String str) {
String temp;
List
< String > list = new ArrayList < String > ();
if (str != null && str.length() > 0 ) {
int start = str.indexOf( " string " );
int end = str.lastIndexOf( " ; " );
temp
= str.substring(start, end - 3 );
String[] test
= temp.split( " ; " );
for ( int i = 0 ; i < test.length; i ++ ) {
if (i == 0 ) {
temp
= test[i].substring( 7 );
}
else {
temp
= test[i].substring( 8 );
}
int index = temp.indexOf( " , " );
list.add(temp.substring(
0 , index));
}
}
return list;
}

}

weather.xml

android的互联网开发android的互联网开发代码
   
   
   
<? xml version="1.0" encoding="utf-8" ?>
< LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"
android:orientation
="vertical" android:layout_width ="fill_parent"
android:layout_height
="fill_parent" >

< TextView
android:text ="天气预报"
android:id
="@+id/titleTextView01"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content" ></ TextView >

< LinearLayout
android:orientation ="horizontal"
android:layout_width
="fill_parent"
android:layout_height
="wrap_content" >

< TextView
android:text ="请选择城市:"
android:id
="@+id/cityTextView02"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content" ></ TextView >

< Spinner
android:id ="@+id/citySpinner01"
android:layout_width
="fill_parent"
android:layout_height
="wrap_content" ></ Spinner >
</ LinearLayout >

< ScrollView
android:id ="@+id/ScrollView01"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content" >

< TextView
android:text ="@+id/displayTextView03"
android:id
="@+id/displayTextView03"
android:layout_width
="fill_parent"
android:layout_height
="fill_parent" ></ TextView >

</ ScrollView >
</ LinearLayout >

五、WebView编程

TestWebViewActivity.java

android的互联网开发android的互联网开发代码
   
   
   
package com.amaker.ch13.webview;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;

import com.amaker.ch13.R;
/**
* 通过WebView浏览网络
*/
public class TestWebViewActivity extends Activity {
private WebView webView;
@Override
public void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.test_webview);
webView
= (WebView)findViewById(R.id.mywebview);
/* String url = " http://www.google.com ";
webView.loadUrl(url);
*/

String html
= "" ;
html
+= " <html> " ;
html
+= " <body> " ;
html
+= " <a href=http://www.google.com>Google Home</a> " ;
html
+= " </body> " ;
html
+= " </html> " ;

webView.loadData(html,
" text/html " , " utf-8 " );


}
}

test_webview.xml

android的互联网开发android的互联网开发代码
   
   
   
<? xml version="1.0" encoding="utf-8" ?>
< LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"
android:orientation
="vertical"
android:layout_width
="fill_parent"
android:layout_height
="fill_parent"
>
< WebView
android:id ="@+id/mywebview"
android:layout_width
="fill_parent"
android:layout_height
="fill_parent"
/>
</ LinearLayout >