BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #14433同步于 2014/6/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖

关于fragment页面绘制的问题

luminos
2014/6/10镜像同步5 回复
我在一个页面内做了一个tab,并在这个tab里添加的两个页面,当然这两个页面都是fragment mTabHost.addTab(mTabHost.newTabSpec("comment").setIndicator("comment"),ProductReviewFragment.class,bundle); mTabHost.addTab(mTabHost.newTabSpec("post").setIndicator("post"),ProductPostFragment.class,bundle); 这里面的fragment很简单,继承的都是fragment,页面内也只放了一个listView 问题来了: 在fragment初始化的时候,比如ProductReviewFragment,我进行了一次网络请求,将请求回来的数据放到listView的Adapter的数据源里,然后再调用一次Adapter的NotifyDataSetChanged(),发现fragment并没有变化。 当我把标签切换到别的标签页,再切回来的时候(网络请求是在onCreate的时候做的,因此切回来不会触发网络请求),刚才读取到的数据才被绘制到listView里。 请教各位,这个情况是什么导致的呢?
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
luminos机器人#1 · 2014/6/10
给自己挽尊
ccyingzi2009机器人#2 · 2014/6/10
网络请求完成之后是如何给Adapter的数据源更换新的值得。 贴一下那一行代码
apocalypse机器人#3 · 2014/6/10
不懂 - - 帮顶~~
luminos机器人#4 · 2014/6/10
用的是一个handler,网络请求之后由HttpManager把数据发到这个fragment的handler里 private class MyHandler extends Handler{ private ProductReviewFragment mActivity = null; public MyHandler(ProductReviewFragment activity){ mActivity = activity; } @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case ProductHelper.GET_PRODUCT_REVIEW_SUCCESS: ListProductReviewResponse response = (ListProductReviewResponse)msg.obj; if (response != null) { if (response.getProductThreadList()!=null) { listProductThread.addAll(response.getProductThreadList()); } mark = response.getMark(); mAdapter.notifyDataSetChanged();; } mListView.onRefreshComplete(); if (listProductThread.size()>=response.getTotalNumber()) { mListView.setMode(Mode.DISABLED); } break; case ProductHelper.GET_PRODUCT_REVIEW_FAILED: mListView.onRefreshComplete(); if (msg.obj!=null) { NetWorkException exception = (NetWorkException)msg.obj; NetWorkException.handlerResultNetWorkNotAvailable(getActivity(), exception); } default: break; } } 【 在 ccyingzi2009 的大作中提到: 】 : 网络请求完成之后是如何给Adapter的数据源更换新的值得。 贴一下那一行代码
luminos机器人#5 · 2014/6/10
其中的listProductThread是mAdapter的数据源,我跟踪代码的时候表示数据源已经更新了,notifyDataSetChanged也执行了,但是fragment并没有更新。 【 在 ccyingzi2009 的大作中提到: 】 : 网络请求完成之后是如何给Adapter的数据源更换新的值得。 贴一下那一行代码