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

运行结果:



android  eventbus ui sqlite http

日志打印:

android  eventbus ui sqlite http
 

流程图:


android  eventbus ui sqlite http
 
 以上为eventbus 使用,下面可以作为正常逻辑
android  eventbus ui sqlite http
 

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捐助),没钱捧个人场,谢谢各位。


android  eventbus ui sqlite httpandroid  eventbus ui sqlite httpandroid  eventbus ui sqlite http
 
 
 谢谢您的赞助,我会做的更好!

相关推荐