android eventbus ui sqlite http

 

 

Actual combat QQ demo source code (this application is included in this example)

Server-side download : http://download.csdn.net/download/knight_black_bob/9822551

android eclipse version : http://download.csdn.net/download/knight_black_bob/9822553

android stdio version : http://download.csdn.net/download/knight_black_bob/9822556

 

 

 

 

operation result:



 

 

log print:


 

flow chart:

 



 
 The above is used by eventbus, and the following can be used as normal logic

 

 

 

 

 

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();

			}

 

 

 

 

 

 

 

 

 

 

 

 

Donate to developers

Driven by interest, I write 免费something with joy and sweat. I hope you like my work and can support it at the same time. Of course, if you have money to support a money field (the love sign in the upper right corner, support Alipay and PayPal donations), if you have no money to support a personal field, thank you.



 
 
 Thank you for your sponsorship, I will do better!

 

 

 

 

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326717110&siteId=291194637