Android Internet应用实现获取天气预报的示例代码

在Eclipse中创建Android项目,利用之前学过的WebView控件和中国天气网提供的天气数据接口,实现获取指定城市的天气预报。

布局文件:
res/layout/main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:id="@+id/ll1"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:orientation="vertical" > 

 <LinearLayout
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:layout_weight="4"
 android:gravity="center"
 android:orientation="horizontal" >
 <Button
 android:id="@+id/beijing"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="北京"/>
 <Button
 android:id="@+id/shanghai"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="上海"/>
 <Button
 android:id="@+id/haerbin"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="哈尔滨"/>
 <Button
 android:id="@+id/changchun"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="长春"/>
 <Button
 android:id="@+id/shenyang"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="沈阳"/>
 <Button
 android:id="@+id/guangzhou"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="广州"/>
 </LinearLayout> 

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

 <WebView android:id="@+id/webview1"
 android:layout_width="match_parent"
 android:layout_height="match_parent"/> 

 </LinearLayout>
</LinearLayout> 

布局效果如图

要在AndroidManifest.xml中设置强制横屏(android:screenOrientation="landscape"):

<activity
 android:name=".MainActivity"
 android:screenOrientation="landscape"
 android:label="@string/app_name" >
 <intent-filter>
 <action android:name="android.intent.action.MAIN" />
 <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>
</activity> 

MainActivity:

package com.example.test; 

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button; 

public class MainActivity extends Activity implements OnClickListener{
 private WebView webview;
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main); 

 webview=(WebView)findViewById(R.id.webview1);
 //处理各种通知请求和事件,如果不使用该句代码,将使用内置浏览器访问网页
 webview.setWebViewClient(new WebViewClient());
 webview.getSettings().setJavaScriptEnabled(true);//设置兼容JavaScript
 webview.setWebChromeClient(new WebChromeClient());//处理JavaScript对话框
 //设置默认显示的天气预报信息
 webview.loadUrl("http://m.weather.com.cn/m/pn12/weather.htm");
 webview.setInitialScale(57*4);//将网页内容放大四倍 

 Button bj=(Button)findViewById(R.id.beijing);
 bj.setOnClickListener(this);
 Button sh=(Button)findViewById(R.id.shanghai);
 sh.setOnClickListener(this);
 Button hrb=(Button)findViewById(R.id.haerbin);
 hrb.setOnClickListener(this);
 Button cc=(Button)findViewById(R.id.changchun);
 cc.setOnClickListener(this);
 Button sy=(Button)findViewById(R.id.shenyang);
 sy.setOnClickListener(this);
 Button gz=(Button)findViewById(R.id.guangzhou);
 gz.setOnClickListener(this);
 } 

 @Override
 public void onClick(View v) {
 switch (v.getId()) {
 case R.id.beijing: //单击的是"北京"按钮
 openUrl("101010100T");
 break;
 case R.id.shanghai: //单击的是"上海"按钮
 openUrl("101020100T");
 break;
 case R.id.haerbin: //单击的是"哈尔滨"按钮
 openUrl("101050101T");
 break;
 case R.id.changchun: //单击的是"长春"按钮
 openUrl("101060101T");
 break;
 case R.id.shenyang: //单击的是"沈阳"按钮
 openUrl("101070101T");
 break;
 case R.id.guangzhou: //单击的是"广州"按钮
 openUrl("101280101T");
 break; 

 default:
 break;
 }
 }
 private void openUrl(String id) {
 //获取并显示天气预报信息
 webview.loadUrl("http://m.weather.com.cn/m/pn12/weather.htm?id="+id+"");
 }
}

别忘记在AndroidManifest.xml中加入访问网络的权限:

<!-- 添加链接网络的权限 -->
uses-permissionandroid:name="android.permission.INTERNET 

运行结果如图

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • C#实现解析百度天气数据,Rss解析百度新闻以及根据IP获取所在城市的方法

    本文实例讲述了C#实现解析百度天气数据,Rss解析百度新闻以及根据IP获取所在城市的方法,分享给大家供大家参考.具体实现方法如下: 一.百度天气 接口地址:http://api.map.baidu.com/telematics/v3/weather?location=上海&output=json&ak=hXWAgbsCC9UTkBO5V5Qg1WZ9,其中ak是密钥,自行去申请即可,便于大家测试,楼主就公布并了自己的Key,这样可以直接获取到数据. 获取到的数据是这样的: 复制代码 代码如

  • python解析中国天气网的天气数据

    使用方法:terminal中输入 复制代码 代码如下: python weather.py http://www.weather.com.cn/weather/101010100.shtml 北京6天的天气数据 json格式 复制代码 代码如下: #coding=utf-8  #weather.py  import urllib  import re  import simplejson  import sys if len(sys.argv) != 2:      print 'please

  • Android天气预报之基于HttpGet对象解析天气数据的方法

    本文实例所述为Android天气预报之解析天气数据的代码,可实现获取HttpGet对象读取天气网站天气数据,并从数据中解析出天气数据,比如温度.温度.风力.风向.未来几天天气趋势.当天天气状况.空气污染指数等信息,还包括了调用对应的图片或天气动画文件,对于开发android天气预报程序的可以参考本文实例. 具体功能代码如下: import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayL

  • Android Internet应用实现获取天气预报的示例代码

    在Eclipse中创建Android项目,利用之前学过的WebView控件和中国天气网提供的天气数据接口,实现获取指定城市的天气预报. 布局文件: res/layout/main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:too

  • Android如何通过URI获取文件路径示例代码

    前言 最近在工作的过程中,遇到不同 Android 版本下 URI 采用不同方式来获取文件路径的问题. 因为需求的原因,要求拍照上传或者从相册中选择图片上传,而且图片是需要经过压缩的,大小不能超过2M. 很快,拍照的这部分就搞定了.那么相册中选择图片的也是一样的道理,应该也是轻松解决了. 至于选择图片的代码,如下所示: intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENAB

  • android通过google api获取天气信息示例

    android通过google API获取天气信息 复制代码 代码如下: public class WeatherActivity extends Activity { private TextView txCity; private Button btnSearch; private Handler weatherhandler; private Dialog progressDialog; private Timer timer;    /** Called when the activit

  • Android 实现无网络传输文件的示例代码

    最近的项目需要实现一个 Android 手机之间无网络传输文件的功能,就发现了 Wifi P2P(Wifi点对点)这么一个功能,最后也实现了通过 Wifi 隔空传输文件 的功能,这里我也来整理下代码,分享给大家. Wifi P2P 是在 Android 4.0 以及更高版本系统中加入的功能,通过 Wifi P2P 可以在不连接网络的情况下,直接与配对的设备进行数据交换.相对于蓝牙,Wifi P2P 的搜索速度和传输速度更快,传输距离更远 实现的效果如下所示: 客户端.png 服务器端.png 一

  • Android 实现无网络页面切换的示例代码

    本文介绍了Android 实现无网络页面切换的示例代码,分享给大家,具体如下: 实现思路 需求是在无网络的时候显示特定的页面,想到要替换页面的地方,大多都是recyclerview或者第三方recyclerview这种需要显示数据的地方,因此决定替换掉页面中所有的recyclerview为无网络页面 实现过程 1 在BaseActivity中,当加载布局成功以后,通过id找到要替换的view,通过indexOfChild()方法,找到要替换的view的位置,再通过remove和add view来

  • Android监听手机短信的示例代码

    本文介绍了Android监听手机短信的示例代码,分享给大家,具体如下: 以下情况可能会导致短信拦截失败: 小米,360等品牌手机拦截短信,短信的优先级给了系统 用户禁用短信权限 手机连接电脑,被电脑端的手机助手类软件截获 手机内装有QQ通讯录之类的管理联系人,短信的应用,被截获. 前提--权限: <uses-permission android:name="android.permission.RECEIVE_SMS" > </uses-permission>

  • Android PC投屏功能实现的示例代码

    本文介绍了Android PC投屏功能实现的示例代码,分享给大家,具体如下: 代码地址 :https://github.com/deepsadness/MediaProjectionDemo 效果预览 投屏效果预览 简单说明: 使用Android MediaProjection Api来完成视频的截图 通过WebSocket进行链接.将图片传递给网页 想法来源 看到vysor,觉得特别好玩,于是就想着自己能不能试着做一个类似的功能出来.搜索了相关实现.发现网上已经有网友针对vysor做了分析.于

  • Android Studio实现简单音乐播放功能的示例代码

    项目要求 基于Broadcast,BroadcastReceiver等与广播相关的知识实现简单的音乐播放功能,包括音乐的播放.暂停.切换.进度选择.音量调整. 设计效果 (进度条时间刷新功能还没有实现) 实现思路 音乐服务端负责播放音乐和收发广播的功能.当音乐服务端作为接收器时,只能接收到主页面广播的控制消息:作为发送器时,向主页面发送歌曲信息更新的消息 主页面负责进度条以及音量按钮的监听,同时也有收发广播的功能.当主页面作为接收器时,只能接收到音乐服务端广播的歌曲信息更新的消息:作为发送器时,

  • Android实现字母导航控件的示例代码

    目录 自定义属性 Measure测量 坐标计算 绘制 Touch事件处理 数据组装 显示效果 今天分享一个以前实现的通讯录字母导航控件,下面自定义一个类似通讯录的字母导航 View,可以知道需要自定义的几个要素,如绘制字母指示器.绘制文字.触摸监听.坐标计算等,自定义完成之后能够达到的功能如下: 完成列表数据与字母之间的相互联动; 支持布局文件属性配置; 在布局文件中能够配置相关属性,如字母颜色.字母字体大小.字母指示器颜色等属性. 主要内容如下: 自定义属性 Measure测量 坐标计算 绘制

  • Android串口通信封装之OkUSB的示例代码

    本文介绍了Android串口通信封装之OkUSB的示例代码,分享给大家.具体如下: Github传送门:OkUSB OkUSB 一个简洁的Android串口通信框架. 功能简介 支持设置波特率 支持设置数据位 支持设置停止位 支持设置校验位 支持DTS和RTS 支持串口连接状态监听 用法简介 Gradle allprojects { repositories { ... maven { url 'https://jitpack.io' } } } dependencies { compile '

随机推荐