android eventbus ui sqlite http
实战 QQ demo源码(本例中有该应用)
服务器端下载:http://download.csdn.net/download/knight_black_bob/9822551
android eclipse 版:http://download.csdn.net/download/knight_black_bob/9822553
android stdio 版本:http://download.csdn.net/download/knight_black_bob/9822556
运行结果:
日志打印:
流程图:
以上为eventbus 使用,下面可以作为正常逻辑
1
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mBaseView = LayoutInflater.from(getActivity()).inflate(R.layout.friendship_list_fragment, null); initUtils(); initView(mBaseView); initListeners(); EventBus.getDefault().register( this ); FriendshipUserRequest.getFriendshipUserFromWeb(user.getId()); return mBaseView; }
2
public class FriendshipUserRequest { public static void getFriendshipUserFromWeb(long userId ){ GsonRequest<QueryResultJson> gsonRequest = new GsonRequest<QueryResultJson>( Constants.friendship_url+ userId, QueryResultJson.class, new Response.Listener<QueryResultJson>() { @Override public void onResponse(QueryResultJson response) { JsonElement obj = response.retdata; if (obj != null && response.retcode == 200) { Log.e("baoyou","obj.toString() == "+ obj.toString()); FriendshipUserEntity resultjson = JsonParser.parseDateJson(obj.toString(), FriendshipUserEntity.class); FriendshipUserHttpManager.getFriendshipUserFromWeb(resultjson); }else{ } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { } }) ; Volley.newRequestQueue(MyApplication.newInstance()).add(gsonRequest); } }
3
public class FriendshipUserHttpManager { public static void getFriendshipUserFromWeb( FriendshipUserEntity item){ List<FriendshipUserEntity> list = new ArrayList<FriendshipUserEntity>(); list.add(item); FriendshipUserHttpEvent dbEvent = new FriendshipUserHttpEvent(); dbEvent.status = list.size() == 0? RequestStatus.HTTP_NONE: RequestStatus.HTTP_SUCCESS; dbEvent.mDataList = list; Log.e("baoyou", "--"+list.size() + list.toString()); EventBus.getDefault().post(dbEvent); } }
4.
public void onEventMainThread(RequestEvent dbEvent) { Log.e("baoyou", "-- event ==================" ); if (dbEvent instanceof FriendshipUserHttpEvent) { Log.e("baoyou", "-- event http ==================" ); FriendshipUserHttpEvent event = (FriendshipUserHttpEvent) dbEvent; switch (dbEvent.status) { case HTTP_NONE: break; case HTTP_SUCCESS: { FriendshipUserEntity item = event.mDataList.get(0); userDB.deleteAll(); friendShipDB.deleteAll(); for (UserEntity ue : item.userList) { userDB.saveOrUpdate(ue); } for (FriendShipEntity fse : item.friendShipList) { friendShipDB.saveOrUpdate(fse); } FriendShipDBManager.getAllFromDB(friendShipDB); } break; default: break; } } @Override public void onDestroy() { EventBus.getDefault().unregister( this ); super.onDestroy(); }
5.
public class FriendShipDBManager { public static void getAllFromDB(FriendShipDB friendShipDB){ List<FriendShipEntity> list = friendShipDB.getAll(); FriendShipDBEvent dbEvent = new FriendShipDBEvent(); dbEvent.status = list.size() == 0? RequestStatus.DB_NONE: RequestStatus.DB_SUCCESS; dbEvent.mDataList = list; EventBus.getDefault().post(dbEvent); } }
6.
else if (dbEvent instanceof FriendShipDBEvent) { Log.e("baoyou", "-- event db ==================" ); FriendShipDBEvent event = (FriendShipDBEvent) dbEvent; switch (dbEvent.status) { case DB_NONE: break; case DB_SUCCESS: { List<FriendShipEntity> list = event.mDataList; List<FriendShips> dataList = new ArrayList<FriendShips>(); for (FriendShipEntity fs : list) { UserEntity userEntityByIndex = null; if (fs.getUserId() != 0) userEntityByIndex = userDB.getEntityById(fs.getUserId() + ""); FriendShips item = new FriendShips(); item.setId(fs.getId()); item.setUserSrc(fs.getUserSrc()); item.setParentId(fs.getParentId()); item.setName(fs.getName()); if (userEntityByIndex != null) item.setName(userEntityByIndex.getNickName()); item.setUserId(fs.getUserId()); if (userEntityByIndex != null) item.setPhoto(userEntityByIndex.getPhoto()); dataList.add(item); } for (FriendShips fs : dataList) { if (fs.getParentId() == 0) { long id = fs.getId(); List<FriendShips> childs = new ArrayList<FriendShips>(); for (FriendShips fs2 : dataList) { if (id == fs2.getParentId()) { childs.add(fs2); } } fs.setChilds(childs); mDataList.add(fs); } } mAdapter.notifyDataSetChanged(); }
捐助开发者
在兴趣的驱动下,写一个免费
的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。
谢谢您的赞助,我会做的更好!
相关推荐
kururunga 2020-11-16
pengruiyu 2020-08-01
kururunga 2020-07-16
kururunga 2020-05-07
kururunga 2020-05-01
kururunga 2020-04-23
一个来自吉尔尼斯 2020-04-21
一个来自吉尔尼斯 2020-04-10
xiaorulou 2020-03-01
pengruiyu 2020-02-19
kururunga 2019-12-08
一个来自吉尔尼斯 2019-12-05
Androidtalent 2014-03-23
kuangren 2019-11-01
pengruiyu 2019-10-20
huangf 2015-04-17
kururunga 2015-05-17
huangf 2015-05-17