DevStore首页 > DEV资源 > 源码下载 > 源码详情

23个省份和4个直辖市的天气情况,每5分钟刷一次

 
yuanzhen | 2015-03-26 10:26    浏览量(3797)    评论(12)    收藏(6)
功能分类:生活 支持平台:Android 运行环境:Eclipse
开发语言:Java 开发工具:Eclipse 源码大小:1.41MB
下载源码 555 人下载

源码简介

通过选择省份进入市查询直辖市和普通市的天气情况 小编注:经测试在1+手机上无法获取数据

源码截图

  • 运行截图
DevStore所有源码来自用户上传分享,版权问题及牵扯到商业纠纷均与DevStore无关。

源码片段

// WSDL文档中的命名空间
		private static final String targetNameSpace = "http://WebXml.com.cn/";
		// WSDL文档中的URL
		private static final String WSDL = "http://webservice.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl";

		// 需要调用的方法名(获得本天气预报Web Services支持的城市信息,根据省份查询城市集合:带参数)
		private static final String getSupportCity = "getSupportCity";
		private List> listItems;
		private ListView mListView;

		@Override
		protected void onCreate(Bundle savedInstanceState) {
			super.onCreate(savedInstanceState);
			setContentView(R.layout.activity_main);
			listItems = new ArrayList>();
			mListView = (ListView) findViewById(R.id.province_list);
			new NetAsyncTask().execute();
			//列表单击事件监听
			mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

				@Override
				public void onItemClick(AdapterView parent, View view,
						int position, long id) {
					String mCityName = listItems.get(position).get("city");
					String cityName = getCityName(mCityName);
					Log.d("CityName", cityName);
					Intent intent = new Intent();
					//存储选择的城市名
					intent.putExtra("Cname", cityName);
					intent.setClass(ChengShiActivity.this, WeatherActivity.class);
					startActivity(intent);
				}
				
			});
		}
		/**
		 * 拆分“城市 (代码)”字符串,将“城市”字符串分离
		 * @param name
		 * @return
		 */
		public String getCityName(String name) {
			String city = "";
			int position = name.indexOf(' ');
			city = name.substring(0, position);
			return city;
		}

		class NetAsyncTask extends AsyncTask {

			@Override
			protected void onPostExecute(String result) {
				if (result.equals("success")) {
					//列表适配器
					SimpleAdapter simpleAdapter = new SimpleAdapter(ChengShiActivity.this, listItems, R.layout.province_item, 
							new String[] {"city"}, new int[]{R.id.province});
					mListView.setAdapter(simpleAdapter);
				}
				super.onPostExecute(result);
			}

			@Override
			protected String doInBackground(Object... params) {
				// 根据命名空间和方法得到SoapObject对象
				SoapObject soapObject = new SoapObject(targetNameSpace,getSupportCity);
				//参数输入
				String name = getIntent().getExtras().getString("Pname");
				soapObject.addProperty("byProvinceName", name);
				// 通过SOAP1.1协议得到envelop对象
				SoapSerializationEnvelope envelop = new SoapSerializationEnvelope(
						SoapEnvelope.VER11);
				// 将soapObject对象设置为envelop对象,传出消息
				envelop.dotNet = true;
				envelop.setOutputSoapObject(soapObject);
				HttpTransportSE httpSE = new HttpTransportSE(WSDL);
				// 开始调用远程方法
				try {
					httpSE.call(targetNameSpace + getSupportCity, envelop);
					// 得到远程方法返回的SOAP对象
					SoapObject resultObj = (SoapObject) envelop.getResponse();
					// 得到服务器传回的数据
					int count = resultObj.getPropertyCount();
					for (int i = 0; i < count; i++) {
						Map listItem = new HashMap();
						listItem.put("city", resultObj.getProperty(i).toString());
						listItems.add(listItem);
					}
				} catch (IOException e) {
					e.printStackTrace();
					return "IOException";
				} catch (XmlPullParserException e) {
					e.printStackTrace();
					return "XmlPullParserException";
				}
				return "success";
			}
		}
  •   赞(1) 赞 +1 赞(1) 已赞
  •   收藏(6) 收藏 +1 已收藏 取消
  •   下载(555)
评论(12)
android_nimabi

android_nimabi 2016-05-21 11:01:37

运行APP什么都不显示
回复(0) 赞(0) 赞(1)
lamian

lamian 2015-12-02 17:22:19

大哥,真心的是在报错啊
回复(0) 赞(0) 赞(1)
liu289747235

liu289747235 2015-09-10 13:53:32

不能用......
回复(0) 赞(0) 赞(1)
乱跑乱跑的猪

乱跑乱跑的猪 2015-05-18 17:59:30

真的用不了~~
回复(0) 赞(0) 赞(1)
00various

00various 2015-04-08 23:52:40

亲测,根本不能用嘛
回复(0) 赞(0) 赞(1)
  • 推荐
  • 审核
  • 收录
  • 获取活力值

源码上传作者

  • 4 能力值
  • 2 源码
  • 0 评测
  • 0 资料

热门源码