首页 > 代码库 > 请教高手!为什么在Log中的我数据都显示出来了,但是在.setText()中只显示最后一条数据?
请教高手!为什么在Log中的我数据都显示出来了,但是在.setText()中只显示最后一条数据?
============问题描述============
做了一个解析百度天气JSON数据的功能,results里面用的是GSON解析。现在在Log里面显示数据已经解析出来了,但是在TextView界面.setText()上数据只能显示最后一条,这是为什么啊?
List<WeatherInfo.index> myIndex = weatherInfo.getIndex(); for (index in : myIndex) { Log.i(TGA, "Des = " + in.getTipt() + ":" + in.getDes()); indexContent.setText(in.getTipt() + ":" + in.getDes() + "\n"); }
============解决方案1============
每循环一次textview的文本就重新set了一遍,不是显示最后set的那条文本那显示什么。。
============解决方案2============
弄一个 StringBuffer作为全局变量,然后每次有新东西的时候 append, 最后 setText(buffer.toString())
不过估计你不会喜欢这种,还是建议使用 ListView, 将你读取到的数据解析后实体化,然后使用适配器显示
============解决方案3============
3楼的方法可以这么改:String str = "";
for(index in : myIndex){
str += (in.getTipt() + ":" + in.getDes() + "\n");
}
indexContent.setText(str);
请教高手!为什么在Log中的我数据都显示出来了,但是在.setText()中只显示最后一条数据?
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。