天气预报——textView显示后再加载数据无法更新,换种方式写

使用了聚合数据的sdk开发:

private void initForecastByJuhe(){
  Parameters params=new Parameters();

  params.add("cityname","烟台");
  params.add("dtype", "json");

  JuheData.executeWithAPI(getApplicationContext(), 73,
    "http://op.juhe.cn/onebox/weather/query",
    JuheData.GET, params,
    new DataCallBack() {

@Override
public void onSuccess(int arg0, String result) {
// TODO Auto-generated method stub
if (result != null) {
try {
JSONObject jo = new JSONObject(result);
jo = new JSONObject(jo.getString("result"));
jo = new JSONObject(jo.getString("data"));
JSONObject jrealtime = new JSONObject(jo
.getString("realtime"));

f.setCity_name(jrealtime.getString("city_name"));
f.setMoon_date(jrealtime.getString("moon"));
JSONObject joweather = new JSONObject(jrealtime
.getString("weather"));
f.setTem("温度:"
+ joweather.getString("temperature"));
f.setHum("湿度:"
+ joweather.getString("humidity"));
f.setInfo(joweather.getString("info"));
JSONObject jowind = new JSONObject(jrealtime
.getString("wind"));
f.setWind(jowind.getString("direct") + " "
+ jowind.getString("power"));
JSONObject jolife = new JSONObject(jo
.getString("life"));
JSONObject joLifeInfo = new JSONObject(jolife
.getString("info"));
JSONArray ja = new JSONArray(joLifeInfo
.getString("wuran"));
f.setWuran(ja.get(0) + "," + ja.get(1));
JSONArray janextWeather = new JSONArray(jo
.getString("weather"));
JSONObject jonext = janextWeather
.getJSONObject(1);
jonext = new JSONObject(jonext
.getString("info"));
janextWeather = new JSONArray(jonext
.getString("day"));
f.setNextInfo("明日天气\n\n温度:" + janextWeather.get(2)
+ " " + janextWeather.get(1));
f.setNextWind(janextWeather.get(3) + " "
+ janextWeather.get(4));
String forecast[] = { f.getCity_name(),f.getTem(),
f.getHum(),f.getMoon_date(),f.getInfo(),
f.getWind(),f.getWuran(),f.getNextInfo(),f.getNextWind()};
for (int i = 0; i < forecast.length; i++) {
ResideMenuItem itemf = new ResideMenuItem(getApplicationContext(),0, forecast[i]);
resideMenu.addMenuItem(itemf, ResideMenu.DIRECTION_RIGHT);
}

Toast.makeText(getApplicationContext(),
f.getMoon_date(), Toast.LENGTH_SHORT).show();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

@Override
public void onFinish() {

}

@Override
public void onFailure(int arg0, String arg1, Throwable arg2) {
Toast.makeText(getApplicationContext(),
"错误:"+arg1, Toast.LENGTH_SHORT).show();
}
});
}

时间: 2024-07-29 05:18:38

天气预报——textView显示后再加载数据无法更新,换种方式写的相关文章

Velocity中加载vm文件的三种方式

Velocity中加载vm文件的三种方式: a.  加载classpath目录下的vm文件 Properties p = new Properties(); // 加载classpath目录下的vm文件 // 这里是加载模板VM文件,比如:/META-INF/template/Web_B2CPayment.vm(请参考mas_spring_integration.xml) p.setProperty("file.resource.loader.class", "org.apa

转 Velocity中加载vm文件的三种方式

Velocity中加载vm文件的三种方式 velocitypropertiespath Velocity中加载vm文件的三种方式:   方式一:加载classpath目录下的vm文件 Properties p = new Properties(); p.put("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); Ve

加载hibernate配置文件的2种方式

4.加载hibernate配置文件的2种方式 1.configuration.configure() 要求1.该配置文件必须放在classpath下2.名称必须为hibernate.cfg.xml 2.configuration.configure("/cn/itcast/config/hibernate.cfg.xml") 自定义配置文件的名称和路径

Spring加载properties文件的两种方式

在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取properties里面的配置,这样后期只需要改动properties文件即可,不需要修改源代码,这样更加方便.在Spring中也可以这么做,而且Spring有两种加载properties文件的方式:基于xml方式和基于注解方式.下面分别讨论下这两种方式. 1. 通过xml方式加载properties文件 我们以Spring实例化dataSource为例,我们一般会在beans

js文件最后加载(在window.load事件发生后再加载js文件),用于解决因jQuery等js库导致网页加载慢的问题

需引入文件:lazyload-min.js <script src="JS/lazyload-min.js" type="text/javascript"></script> 插入代码: function loadscript() { LazyLoad.loadOnce([ 'JS/touch.js', 'http://libs.baidu.com/jquery/1.2.3/jquery.min.js' ], loadComplete); }

网页图片很多时,加载完后再加载图片(defer:延迟加载)

图片影响页面加载速度,可以先加载完页面,再去加载图片. defer:告诉浏览器,这里面的js代码不影响网页脚本解析,可以解析完html脚本再执行这段js代码(个人理解). 网页代码:<img src="grey.gif" data-original="img/53a1820f5866c.png"/> Js代码: <script defer="defer" type="text/javascript" >

UIImage加载本地图片的两种方式

UIImage加载图片方式一般有两种: (1)imagedNamed初始化:默认加载图片成功后会内存中缓存图片,这个方法用一个指定的名字在系统缓存中查找并返回一个图片对象.如果缓存中没有找到相应的图片对象,则从指定地方加载图片然后缓存对象,并返回这个图片对象. (2)imageWithContentsOfFile初始化:则仅只加载图片,不缓存. 大量使用imageNamed方式会在不需要缓存的地方额外增加开销CPU的时间来做这件事.当应用程序需要加载一张比较大的图片并且使用一次性,那么其实是没有

Spring mvc应用 加载静态资源的几种方式

总结几种Spring mvc应用加载静态资源的方式 1.使用服务器的默认Servlet处理 对于不同的服务器,处理静态资源的servlet-name不一样,需要去看服务器具体的配置文件 比如resin-3.1.12,通过查看app-default.xml可以看到默认处理jsp的servlet-name为>resin-jsp 所以可以通过在web.xml中添加静态资源的访问 <servlet-mapping>        <servlet-name>resin-jsp<

Unity加载本地图片的2种方式

1. 使用 WWW 加载,详细查看 unity3d 官方文档. 2. 使用 System.IO 加载,lua 代码如下: local File = luanet.import_type("System.IO.File"); local Texture2D=luanet.import_type("UnityEngine.Texture2D"); local TextureFormat=luanet.import_type("UnityEngine.Textu