随笔-54  评论-0  文章-2  trackbacks-0

今天学习从网上获得数据,以xml文件输出。流程:android客户端 -----已经开发好的CRM(220.113.15.23) -----[客户资料]--à屏幕

用的是struts1.3的环境

1.搭建环境

1.web.xml配置struts servlet

2.添加jar

3.复制struts-config.xml

环境搞定后,新建jsp文件,写好文件头:<?xml version="1.0" encoding="UTF-8"?> 注意

接着新建一个ContactAction

最后配置struts-config.xml文件

新建contact.jsp文件,得到数据

访问路径,测试得到的数据,以验证是否正确,若正确的话,第一步完成

下面是Android应用

2 ..设计要显示的界面

  .新建service,可以调用

关键代码:

String path = “http://192.168.1.100:8080/crm/contacts.do”;

URL url = new URL(path);

HttpURLConnection conn = (HttpURLConnection)url.openConnection();

conn.setConnectionTimeout(5*1000);

conn.setRequestMethod(“POST”);

return conn.getInputStream();

在该类中还应该新建sax解析方法,解析文档,保存数据

.新建android测试类,以日志形式打印出xml文件中的数据

3.应用HttpURLConnection对象,我们可以向网络发送请求参数.下面以POST发送为例,写一些关键代码点

Map<String, String> params = new HashMap<String, String>();

params.put("age", "22");

params.put("name", "浪淘沙");

 StringBuilder params = new StringBuilder();

for(Map.Entry<String, String> entry : params.entrySet()){

     params.append(entry.getKey());

     params.append("=").append(URLEncoder.encode(entry.getValue(), "UTF-8"));

     params.append("&");

}

if (params.length() > 0) params.deleteCharAt(params.length() - 1);

byte[] data = params.toString().getBytes();

 

4. 为应用添加新的Activity

①:新建一个继承Activity的类

②:需要在功能清单AndroidManifest.xml文件中添加进上面Activity配置代码

 

打开新的Activity,不传递参数

通过意图打开ActivityIntent,用于激活Activity的,在组件之间传递数据

在新的Activity中接收前面Activity传递过来的参数:

添加参数的另一种方法:Bundle

Bundle类用作携带数据,它类似于Map,用于存放key-value名值对形式的值。相对于Map,它提供了各种常用类型的putXxx()/getXxx()方法, putXxx()用于往Bundle对象放入数据,getXxx()方法用于从Bundle对象里获取数据。Bundle的内部实际上是使用了HashMap<String, Object>类型的变量来存放putXxx()方法放入的值:

 

5. Intent过滤器

Android鼓励减少组件间的耦合,因此Android提供了Intent (意图) Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递Intent来执行动作和产生事件。使用Intent可以激活Android应用的三个核心组件:活动、 服务和广播接收器。

Intent可以划分成显式意图和隐式意图。

 

 

posted on 2010-03-20 23:30 d66380022 阅读(192) 评论(0)  编辑  收藏