无限上拉下拉XlistView 有时候就会出现 适配器内容已经改变,但列表视图没有收到通知。求解,为什么!内有详细说明。 android 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 很简单,的你看看你 在线程中取到的集合a。 是不是直接放到了adapter中了 问题是有时候报错,有时候不报啊。肯定放到adapter中了的。 list_comment, list_comment_child 这俩集合在线程中操作了吧? 因为那只是存在于一个微妙的时间差。 你上拉同时,返回数据, 你在上啦,再返回,你滑动listview的时候, 线程中得到的list会改变, 然后还没来得及通知到adapter的时候,你又在滑了,这只是在快速上啦或者下拉,时候才会出现,你上拉等加载完了,等等,再上啦,等会肯定不出现的 public void run() { ResultInfo info = mChailboardAction.getChailboardReplylist(subject_id, mLast, pull); if (info != null) { List<ChailboardReplylist> listReplylists = (List<ChailboardReplylist>) (info.getObj() == null ? null : info.getObj()); mLast = info.getLast(); if (listReplylists != null && listReplylists.size() > 0) { if (pull.equals("down")) { list_comment.clear(); list_comment_child.clear(); list.clear(); } list.addAll(listReplylists); uiHandler.sendEmptyMessage(1001); } }else if(mLast.equals("0")){ uiHandler.sendEmptyMessage(1000); }else{ uiHandler.sendEmptyMessage(1005); } uiHandler.sendEmptyMessage(1004); } public void startRun(){ if(thread == null) thread = new Thread(this); thread.start(); uiHandler.sendEmptyMessage(1003); } private void initCommentData() { // TODO Auto-generated method stub HashMap<String, Object> map; HashMap<String, Object> map1; if (list.size() > 0 && list != null) { for (int i = 0; i < list.size(); i++) { map = new HashMap<String, Object>(); map.put("content", list.get(i).getContent()); map.put("time", list.get(i).getCreate_time()); map.put("name", list.get(i).getDisplay_name()); map.put("pinglun", list.get(i).getReply_count()); map.put("id", list.get(i).getId()); map.put("num", list.get(i).getDigg()); map.put("myDigg", list.get(i).getMyDigg()); map.put("avatar", list.get(i).getAvatar()); map.put("uid", list.get(i).getUid()); map.put("num", list.get(i).getDigg()); list_comment.add(map); List<Map<String, Object>> rList = new ArrayList<Map<String, Object>>(); list_comment_child.add(rList); for (int j = 0; j < list.get(i).getReplyList().size(); j++) { if (list.get(i).getReplyList().size() > 0 && list.get(i).getId() == list.get(i).getReplyList().get(j).getTop_reply()) { map1 = new HashMap<String, Object>(); map1.put("content", list.get(i).getReplyList().get(j).getContent()); map1.put("time", list.get(i).getReplyList().get(j).getCreate_time()); map1.put("displayName", list.get(i).getReplyList().get(j).getDisplay_name()); map1.put("parentName", list.get(i).getReplyList().get(j).getParent_name()); map1.put("pinglun", list.get(i).getReplyList().get(j).getReply_count()); map1.put("id", list.get(i).getReplyList().get(j).getId()); map1.put("num", list.get(i).getReplyList().get(j).getDigg()); map1.put("myDigg", list.get(i).getReplyList().get(j).getMyDigg()); map1.put("avatar", list.get(i).getReplyList().get(j).getAvatar()); map1.put("uid", list.get(i).getReplyList().get(j).getUid()); map1.put("parent_uid", list.get(i).getReplyList().get(j).getParent_uid()); map1.put("num", list.get(i).getReplyList().get(j).getDigg()); rList.add(map1); } } } } } 一句话,把线程中得到的个list 通过handler 发送到主线程中, 不知道你理解我说的么 initCommentData() 这个方法中的for 遍历的list 不要在线程中添加取到的list ,,你把线程中的list发送出来,在handler中添加到这个initCommentData() 中遍历的总list中。 是不是将子线程中查询得到list 发送个消息到主线程中来 然后在主线程中 用list.add()添加从子线程传过来的list然后在遍历 嗯是,你线程中的list,不要在主线程中使用它,这样不一致了。就会出那错。 那我需要将子线程中的那个listReplylists声明到外面去把 奇怪的页面控件更新问题,求教了....... android4.0中setting模块修改preferencecategory显示的背景宽度 WebView获取 网页内容 急需Android移动平台开发者1名与我共创未来(限大连,兼职) SQLite 时间比较的语句怎么写 求解释!!! 请问大家在android里面如何绘制长度为1cm的线 textview数组问题,你遇到过吗? 如何监控Android手机上的http请求 关于Android环境中进程间通信的问题 怎样学好Android???给些建议。 如何设置点击背景时可以将程序隐藏? 谁分享下个好点的安卓入门视频
ResultInfo info = mChailboardAction.getChailboardReplylist(subject_id, mLast, pull);
if (info != null) {
List<ChailboardReplylist> listReplylists = (List<ChailboardReplylist>) (info.getObj() == null ? null : info.getObj());
mLast = info.getLast();
if (listReplylists != null && listReplylists.size() > 0) {
if (pull.equals("down")) {
list_comment.clear();
list_comment_child.clear();
list.clear();
}
list.addAll(listReplylists);
uiHandler.sendEmptyMessage(1001);
}
}else if(mLast.equals("0")){
uiHandler.sendEmptyMessage(1000);
}else{
uiHandler.sendEmptyMessage(1005);
}
uiHandler.sendEmptyMessage(1004);
}
public void startRun(){
if(thread == null)
thread = new Thread(this);
thread.start();
uiHandler.sendEmptyMessage(1003);
}
// TODO Auto-generated method stub
HashMap<String, Object> map;
HashMap<String, Object> map1;
if (list.size() > 0 && list != null) {
for (int i = 0; i < list.size(); i++) {
map = new HashMap<String, Object>();
map.put("content", list.get(i).getContent());
map.put("time", list.get(i).getCreate_time());
map.put("name", list.get(i).getDisplay_name());
map.put("pinglun", list.get(i).getReply_count());
map.put("id", list.get(i).getId());
map.put("num", list.get(i).getDigg());
map.put("myDigg", list.get(i).getMyDigg());
map.put("avatar", list.get(i).getAvatar());
map.put("uid", list.get(i).getUid());
map.put("num", list.get(i).getDigg());
list_comment.add(map);
List<Map<String, Object>> rList = new ArrayList<Map<String, Object>>();
list_comment_child.add(rList);
for (int j = 0; j < list.get(i).getReplyList().size(); j++) {
if (list.get(i).getReplyList().size() > 0 && list.get(i).getId() == list.get(i).getReplyList().get(j).getTop_reply()) {
map1 = new HashMap<String, Object>();
map1.put("content", list.get(i).getReplyList().get(j).getContent());
map1.put("time", list.get(i).getReplyList().get(j).getCreate_time());
map1.put("displayName", list.get(i).getReplyList().get(j).getDisplay_name());
map1.put("parentName", list.get(i).getReplyList().get(j).getParent_name());
map1.put("pinglun", list.get(i).getReplyList().get(j).getReply_count());
map1.put("id", list.get(i).getReplyList().get(j).getId());
map1.put("num", list.get(i).getReplyList().get(j).getDigg());
map1.put("myDigg", list.get(i).getReplyList().get(j).getMyDigg());
map1.put("avatar", list.get(i).getReplyList().get(j).getAvatar());
map1.put("uid", list.get(i).getReplyList().get(j).getUid());
map1.put("parent_uid", list.get(i).getReplyList().get(j).getParent_uid());
map1.put("num", list.get(i).getReplyList().get(j).getDigg());
rList.add(map1);
}
}
}
}
}