热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

wenserver获取天气预报数据实例分享

wenserver获取天气预报数据,实现android显示天气信息

代码如下:

package tao.cs;

import java.io.IOException;

import org.ksoap2.SoapEnvelope;
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;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;

public class WeatherMain extends Activity {
    Button btn01;  
    TextView tv01,tv02;  
    ImageView imgview01,imgview02;  
    EditText et01;  

    int int_img_1;  
    int int_img_2;  

     public void onCreate(Bundle savedInstanceState) {  
         super.onCreate(savedInstanceState);  
         setContentView(R.layout.main);  

         //组件  
       //  final EditText et01=(EditText) findViewById(R.id.et_TextWeather);  
         btn01=(Button) findViewById(R.id.Button01);  
         tv01=(TextView) findViewById(R.id.TextView01);  
         tv02=(TextView) findViewById(R.id.TextView02);  
         imgview01=(ImageView) findViewById(R.id.ImageView01);  
         imgview02=(ImageView) findViewById(R.id.ImageView02);  
         et01=(EditText) findViewById(R.id.EditText01);  

         btn01.setOnClickListener(new OnClickListener() {  

             public void onClick(View v) {  
                 showWeather();  

             }  
         });  

           
     }//onCreate ***************end  
     protected void showWeather(){//显示所有的信息  

         String str_city=et01.getText().toString();  
         if(str_city.length()==0){  
             str_city="重庆";  

         }  
//         str_city="济南";  
         getWeather(str_city);  
         tv01.setText(getString_WeatherToday());  //今天天气  
         tv02.setText(getString_WeatherCurrent());//当前天气  
         imgview01.setImageResource(getIcon_1());  //当前的两个图标  
         imgview02.setImageResource(getIcon_2());  

     }//showWeather()*****************end  

     private static final String NAME_SPACE="http://WebXml.com.cn/";//命名空间  ,后期测试一下命名空间的作用  
     private static final String METHOD_NAME = "getWeatherbyCityName";  
     private static String URL = "http://www.webxml.com.cn/webservices/weatherwebservice.asmx";// 投递SOAP数据的目标地址  
     private static String SOAP_ACTION = "http://WebXml.com.cn/getWeatherbyCityName";  

     protected void getWeather(String strcityname){//str 是城市名  
  /* 
   * 这里要做的工作是 提交客户端的请求, 
   * 然后获得服务端返回的复杂对象,后面会有专门的 
   */ 
         SoapObject sobject=new SoapObject(NAME_SPACE, METHOD_NAME);  
         sobject.addProperty("theCityName", strcityname);  

         AndroidHttpTransport ht=new AndroidHttpTransport(URL);  
         ht.debug=true;  

         SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11);//告诉SoapSerializationEnvelope把构造好的SoapObject封装进去:  
         envelope.bodyOut=sobject;  
         envelope.dotNet=true;  
         envelope.setOutputSoapObject(sobject);  

         try {  

             ht.call(SOAP_ACTION, envelope);  

         } catch (IOException e) {  

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

             e.printStackTrace();  
         }  
         // 
         SoapObject result=(SoapObject) envelope.bodyIn;  
         SoapObject detail=(SoapObject) result.getProperty("getWeatherbyCityNameResult");//类似于获取服务端返回复杂节点的一个内接点  
         parseWeather(detail);   

     }//getweather *****************end  

     String str_weather_today=null;  
     String str_weather_current=null;  
     protected void parseWeather(SoapObject so){  
         /* 
          * 解析复杂节点,并对相应的参数赋值,为后面的方法准备 
          */ 
         //第六个参数是概况,包括日期,天气....  
         String date=so.getProperty(6).toString();  

         str_weather_today="今天: "+date.split(" ")[0];  
         str_weather_today=str_weather_today+"\n气温:"+so.getProperty(5).toString();  
         str_weather_today=str_weather_today+"\n风力:"+so.getProperty(7).toString()+"\n";  
         //两个图标  
         int_img_1=parseIcon(so.getProperty(8).toString());  
         int_img_2=parseIcon(so.getProperty(9).toString());  

         str_weather_current=so.getProperty(10).toString();  
     }  
     public String getString_WeatherToday(){  
         return str_weather_today;  
     }  
     public String getString_WeatherCurrent(){  
         return str_weather_current;  
     }  

     public int getIcon_1(){  
         return int_img_1;  
     }  
     public int getIcon_2(){  
         return int_img_2;  
     }  
     public int   parseIcon(String strIcon){  
         if (strIcon == null) return -1;  

         if ("0.gif".equals(strIcon)) return R.drawable.a_0;  
         if ("1.gif".equals(strIcon)) return R.drawable.a_1;  
         if ("2.gif".equals(strIcon)) return R.drawable.a_2;  
         if ("3.gif".equals(strIcon)) return R.drawable.a_3;  
         if ("4.gif".equals(strIcon)) return R.drawable.a_4;  
         if ("5.gif".equals(strIcon)) return R.drawable.a_5;  
         if ("6.gif".equals(strIcon)) return R.drawable.a_6;  
         if ("7.gif".equals(strIcon)) return R.drawable.a_7;  
         if ("8.gif".equals(strIcon)) return R.drawable.a_8;  
         if ("9.gif".equals(strIcon)) return R.drawable.a_9;  
         if ("10.gif".equals(strIcon)) return R.drawable.a_10;  
         if ("11.gif".equals(strIcon)) return R.drawable.a_11;  
         if ("12.gif".equals(strIcon)) return R.drawable.a_12;  
         if ("13.gif".equals(strIcon)) return R.drawable.a_13;  
         if ("14.gif".equals(strIcon)) return R.drawable.a_14;  
         if ("15.gif".equals(strIcon)) return R.drawable.a_15;  
         if ("16.gif".equals(strIcon)) return R.drawable.a_16;  
         if ("17.gif".equals(strIcon)) return R.drawable.a_17;  
         if ("18.gif".equals(strIcon)) return R.drawable.a_18;  
         if ("19.gif".equals(strIcon)) return R.drawable.a_19;  
         if ("20.gif".equals(strIcon)) return R.drawable.a_20;  
         if ("21.gif".equals(strIcon)) return R.drawable.a_21;  
         if ("22.gif".equals(strIcon)) return R.drawable.a_22;  
         if ("23.gif".equals(strIcon)) return R.drawable.a_23;  
         if ("24.gif".equals(strIcon)) return R.drawable.a_24;  
         if ("25.gif".equals(strIcon)) return R.drawable.a_25;  
         if ("26.gif".equals(strIcon)) return R.drawable.a_26;  
         if ("27.gif".equals(strIcon)) return R.drawable.a_27;  
         if ("28.gif".equals(strIcon)) return R.drawable.a_28;  
         if ("29.gif".equals(strIcon)) return R.drawable.a_29;  
         if ("30.gif".equals(strIcon)) return R.drawable.a_30;  
         if ("31.gif".equals(strIcon)) return R.drawable.a_31;  

         return 0;  
     }


}

代码如下:


    android:orientation="vertical"
    android:layout_
    android:layout_
    >

 android:id="@+id/EditText01"
 android:layout_
 android:layout_>


 android:id="@+id/ImageView01"
 android:layout_
 android:layout_>

 android:id="@+id/ImageView02"
 android:layout_
 android:layout_>

    android:layout_
    android:layout_
    android:id="@+id/TextView01"

    />

 android:id="@+id/TextView02"
 android:layout_
 android:layout_>




推荐阅读
  • Android 九宫格布局详解及实现:人人网应用示例
    本文深入探讨了人人网Android应用中独特的九宫格布局设计,解析其背后的GridView实现原理,并提供详细的代码示例。这种布局方式不仅美观大方,而且在现代Android应用中较为少见,值得开发者借鉴。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Android LED 数字字体的应用与实现
    本文介绍了一种适用于 Android 应用的 LED 数字字体(digital font),并详细描述了其在 UI 设计中的应用场景及其实现方法。这种字体常用于视频、广告倒计时等场景,能够增强视觉效果。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 将Web服务部署到Tomcat
    本文介绍了如何在JDeveloper 12c中创建一个Java项目,并将其打包为Web服务,然后部署到Tomcat服务器。内容涵盖从项目创建、编写Web服务代码、配置相关XML文件到最终的本地部署和验证。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • 本文介绍如何在 Unity 的 XML 配置文件中,将参数传递给自定义生命周期管理器的构造函数。我们将详细探讨 CustomLifetimeManager 类的实现及其配置方法。 ... [详细]
  • 本文详细介绍了 Java 中 org.apache.xmlbeans.SchemaType 类的 getBaseEnumType() 方法,提供了多个代码示例,并解释了其在不同场景下的使用方法。 ... [详细]
  • 本文详细介绍了如何解决MyBatis中常见的BindingException错误,提供了多种排查和修复方法,确保Mapper接口与XML文件的正确配置。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文探讨了在通过 API 端点调用时,使用猫鼬(Mongoose)的 findOne 方法总是返回 null 的问题,并提供了详细的解决方案和建议。 ... [详细]
author-avatar
佩政哲维99
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有