
可以这样把风向提取出来1,打开androidstudio天气预报,点击我的2,接着,再点击设置菜单往下拉,点击天气设置4,选择定位自己的城市或者其他城市5点击提取风向,这样就可以把风向提取出来了
首先将省市信息以的形式保存到名为arraysxml的文件中(我记得貌似一定要把文件名取为arraysxml)。其中,name属性可以理解为数组名和ID名。这里要注意:省份的顺序要与对应拥有的城市顺序一致。即台湾为最后最后一个省,
在选择城市界面对应的Activity中,通过下面代码将省份列表显示。其中Rarrayprovinces就是我们上面定义的name属性值。
ArrayAdapter adapter =
ArrayAdaptercreateFromResource(this,Rarrayprovinces,androidRlayoutsimple_spinner_item);
provinceSpinnersetAdapter(adapter);
接着,对省份下拉列表进行监听。这里有一个比较麻烦的地方,因为当你选择不同的省份的时候,需要显示该省份对应的城市。面对那么多的省份,如果我们通过if或者switch来 *** 作的话,使得代码很冗长,也难以维护。发现这里是通过Rarrayname这种形式来显示下拉列内容的。通过观察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相加,得出所属城市的数组。具体看看代码
provinceSpinnersetOnItemSelectedListener(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 =
ArrayAdaptercreateFromResource(getApplicationContext(), cityID,
androidRlayoutsimple_spinner_item);
citySpinnersetAdapter(adapter);
}
}
public void onNothingSelected(AdapterView parent) {
}
});
二。
三、SQLite保存城市数据
使用SQLite而不使用Intent传递参数,是因为当用户下次打开程序时,当前城市应该为TA最后一次的选择。关于SQLite的使用,网上有很多文章,比如:52androidblog51ctocom/2554429/478368
之前也学习过一些,但四、PreferenceActivity作为设置界面
参照Android系统的设置,用PreferenceActivity来对系统进行信息配置和管理。这里我也采用PreferenceActivity作为设置界面。(上方图三)
首先,编写xml文件。PreferenceCategory:类别(用于分组)。key:唯一标识(获取信息时使用)。title:显示标题。summary:小标题。还有defaultValue:默认值。我这里值用到了CheckBoxPreference,它还有EditTextPreperence,RingtonePreference,ListPreference,Preference等。
schemasandroidcom/apk/res/android" >
android:key="threeDay"
android:summary="今明后三天的天气预报,如果不选,则只有当天的天气"
android:title="三天预报" />
android:key="cityInfo"
android:summary="关于当前城市的简要介绍"
android:title="城市简介" />
然后,新建Activity继承 PreferenceActivity
,重写onCreate方法,通过addPreferencesFromResource(Rxmlxx); 加载Preference。
public class SetupActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState);
addPreferencesFromResource(Rxmlsetup);
}
}
最后,获取preference数据。可 通过下面三种方式:
1、getPreferences():可以获取同一activity中的preference;
2、getSharedPreferences():可以获取应用级别的preferences,即封装在同一app中,使用SharePreferences
prefs = getSharedPreferences(packName+name ,0)
3、getDefaultSharedPreferences():通过Android的管理器来获取其所管理的preferences。
由于这里不是同一个Activity,所以不能使用getPreferences()。我这里只有一个preference,因此使用PreferenceManagergetDefaultSharedPreferences(this);来获取较方便。
五、通过WebService获取天气信息
WebService获取天气的网址为:webxmlcomcn/webservices/weatherwebserviceasmx上面
// 保存获取到的信息
SoapObject detail = null;
// 1实例化SoapObject对象
SoapObject soapObject = new SoapObject(NAMESPACE, METHOD_NAME);
// 2如果方法需要参数,设置参数
soapObjectaddProperty("theCityName", cityName);
// 3设置Soap的请求信息,获得序列化envelope,参数部分为Soap协议的版本号
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelopeVER11);
envelopebodyOut = soapObject;
envelopedotNet = true;
envelopesetOutputSoapObject(soapObject);
// 4构建传输对象
int timeout = 10000;// 设置超时为10秒
MyAndroid>
这个墨迹天气就可以,在应用宝里面就可以下载官网的。
应用宝是腾 讯推荐的最新的手机商城。应用宝是一个专门针对智能手机开发的一款多功能优化软件,拥有海量的游戏、办公软件、电子书籍、音乐、**等,应用宝是一个为安卓系统手机提供的一个下载平台,里边的软件都是经过认证的正版绿色软件,可以放心下载使用
望采纳谢谢
以上就是关于androidstudio天气预报怎么把风向提取出来全部的内容,包括:androidstudio天气预报怎么把风向提取出来、android怎么访问天气webservice,用网上找的链接都不行、安卓手机定位到镇的天气软件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)