本文目录一览:
1、未来三天天气?
5、android怎么访问天气webservice,用网上找的链接都不行
未来三天天气?
天气晴。
今明后三天上海天气预报
上海现在气温29℃,阴,东北风1级,2023年9月3日(今日)气温25~30℃,空气质量优,空气质量指数47。
近几日天气信息:* 2023-09-02:阴转小雨,25~30℃,东北风<3级,空气质量优。
* **2023-09-03:小雨转多云,25~30℃,东风<3级,空气质量优**。
* 2023-09-04:阴,26~31℃,东风3-4级,空气质量优。
* 2023-09-05:凯差阴转晴,25~30℃,东北风3-4级,空气质量优。
* 2023-09-06:阴转晴,25~30℃,东北风<3级,空气质量优。
* 2023-09-07:晴,25~30℃,东北风<3级,空气质量优。
* 2023-09-08:多云转晴,26~31℃,盯租皮东南风<3级,空气质量优型模。
* 2023-09-09:多云转晴,25~31℃,东南风<3级,空气质量优。
杭州今明后天天气预报
今天的东莞天气多少
广东东莞天气(提问日): 日期 温 温 天气 风向风力 空气质量指数2016-11-11星期五 20℃ 16℃ 洞毕阵雨~多云 无持续风向微风 43优。
东莞今含仔明后三天天气预报:11月12日(今天)阴,15~20℃,南风 2级,轻度污染;11月13日(周日)阴转多云,17~24℃,无持续风向 微风,空气纳老芹良;11月14日(周一)多云,18~26℃,北风 1-2级,空气良。
android怎么访问天气webservice,用网上找的链接都不行
首先将省市信息以的形式保存到名为的文件中(我记得貌似一定要把文件名取为)。
其中,name属性可以理解为数组名和ID名。
这里要注意:省份的顺序要与对应拥有的城市顺序一致。
即台湾为后后一个省,在选择城市界面对应的Activity中,通过下面代码将省份列表显示。
其中是我们上面定义的name属性值。
ArrayAdapter adapter = (this,,_spinner_item);(adapter);接着,对省份下拉列表进行监听。
这里有一个比较麻烦的地方,因为当你选择不同的省份的时候,需要显示该省份对应的城市。
面对那么多的省份,如果我们通过if或者switch来操作的话,使得代码很冗长,也难以维护。
发现这里是通过这种形式来显示下拉列内容的。
通过观察R文件,发现含备衡了一定的规律。
R文件中的array类的int属性值,是根据写入顺序,从0x7f050000开始,逐个+1形成的。
即public static final int provinces=0x7f050000;public static final int beijing_array=0x7f050001;public static final int tianjin_array=0x7f050002;可能R文件中没有按照此顺序排列,不过,不影响这一性质。
所以我想到了只要城市数组的顺序与省份一一对应(上面提到过),可以通过所选省份的position,跟ID初始值 0x7f050000相加,得出所属城市的数组。
具体看看代码(new OnItemSelectedListener() {public void onItemSelected(AdapterView parent, View view,int position, long id) {if(position != 0){//选择了省份,position=0时,为“--请选择--”*0x7f050000为R文件中省份数组对应的id值,只要加上position,即可获得对应选项(省份)的城市*/int cityID = 0x7f050000 + position;ArrayAdapter adapter = (getApplicationContext(), cityID, _spinner_item);(adapter);}}public void onNothingSelected(AdapterView parent) {}});二滚贺。
三、SQLite保存城市数据使用SQLite而不使用Intent传递参数,是因为当用户下次打开程序时,当前城市应该为TA后一次的选择谈做。
关于SQLite的使用,网上有很多文章,比如:/2554429/478368 之前也学习过一些,但四、PreferenceActivity作为设置界面参照Android系统的设置,用PreferenceActivity来对系统进行信息配置和管理。
这里我也采用PreferenceActivity作为设置界面。
(上方图三)首先,编写xml文件。
PreferenceCategory:类别(用于分组)。
key:标识(获取信息时使用)。
title:显示标题。
summary:小标题。
还有defaultValue:默认值。
我这里值用到了CheckBoxPreference,它还有EditTextPreperence,RingtonePreference,ListPreference,Preference等。
/apk/res/android" >android:key="threeDay"android:summary="今明后三天的天气预报,如果不选,则只有当天的天气"android:title="三天预报" />android:key="cityInfo"android:summary="关于当前城市的简要介绍"android:title="城市简介" />然后,新建Activity继承 PreferenceActivity ,重写onCreate方法,通过addPreferencesFromResource(); 加载Preference。
?public class SetupActivity extends PreferenceActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {(savedInstanceState);addPreferencesFromResource();}}后,获取preference数据。
可 通过下面三种方式:1、getPreferences():可以获取同一activity中的preference;2、getSharedPreferences():可以获取应用级别的preferences,即封装在同一app中,使用SharePreferences prefs = getSharedPreferences(packName+name ,0)3、getDefaultSharedPreferences():通过Android的管理器来获取其所管理的preferences。
由于这里不是同一个Activity,所以不能使用getPreferences()。
我这里只有一个preference,因此使用(this);来获取较方便。
虽然ksoap2版本中的HttpTransportSE已经可以设置timeout(超时时间),但是运行后发现没有效果。
查找资料后,才知道HttpTransportSE的源码中并没有把timeout作为参数传递给ServiceConnectionSE。
因此我们需要创建一个类,使得timeout起作用。
class MyAndroidHttpTransport extends HttpTransportSE {private int timeout = 20000; // 默认超时时间为20spublic MyAndroidHttpTransport(String url) {super(url);}public MyAndroidHttpTransport(String url, int timeout) {super(url); = timeout;}//此方法使得超时有效public ServiceConnection getServiceConnection() throws IOException {ServiceConnectionSE serviceConnection = new ServiceConnectionSE(,timeout);return serviceConnection;}}现在来说创建service的过程1、新建类继承Service;2、必须重写onBind方法(如果你通过bindService方法启动service,则在这个方法内执行操作)3、重写onStart方法(由于本程序中,每次点击查询按钮,service要进行联网操作,因此我通过startService方法启动service,则每次startService,都会执行onStart方法。
注意:在service停止前,onCreate只会执行一次)4、在文件中添加className为类名全称:如 .。
如果跟MainActivity在同一个包,可以直接写 .WeatherService。
serviceName为startService(new Intent(String action))的action,bindService类似。
5、在需要启动service的地方,添加一下代码Intent intent =new Intent("WeatherService");//传递数据,可以由onStart接收("city", city);(intent);6、如果是通过bindService启动service,则可以不执行unbindService。
因为只要程序退出,service也将被摧毁。
但是,如果是通过startService启动service,则必须通过stopService将其停止,否则即使程序退出,service依旧在运行。
我们可以在MainActivity的onDestroy中执行stopService。
protected void onDestroy() {//停止servicestopService(new Intent("WeatherService"));();}七、用BroadcastReceiver实现从service到Activity的通信这只是其中一种方法而已。
1、创建广播接收器。
(可以直接在MainActivity中作为内部类创建)重写onReceive方法,接收从service传递过来的天气信息。
//定义一个广播接收器,用于接收Service获得的天气信息class MyBroadcastRecever extends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent) {String[] weatherInfo = ("weather");if(weatherInfo==null){(, "没有当前城市的天气信息", 1000).show();}else if(==1){//即weatherInfo = new String[]{"timeOut"};(, "连接超时,请检查网络", 1000).show();}else{showWeather(weatherInfo);}}}2、通过代码动态注册广播接收器。
(也可以在AndroidManifest中添加属性 )//注册广播接收器IntentFilter filter = new IntentFilter();myBroadcastRecever = new MyBroadcastRecever();//设置接收广播的类型,这里要和Service里设置的类型匹配,还可以在文件中注册//BROADCAST_ACTION=“某个自定义字符串”。
如果有多个广播,则要(BROADCAST_ACTION);registerReceiver(myBroadcastRecever, filter);3、通过广播发送消息Intent i = new Intent();("weather", weather);//BROADCAST_ACTION与注册时的字符串一致(BROADCAST_ACTION);sendBroadcast(i);。
全国未来15天天气预报怎么查询?
如果是要查未来十五天全国的天气预报在手机上可以查,基本上手机上都有。
但是不管是手机上查还从其它的天气预报中查都是不准的,不要说是十五天是在三天之中都不准,因为说的是人变一世天变一时。