?
运行结果:

?
?
日志打印:

?
流程图:
?
?
?
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();
}
?
?
?
?
?
?
?
?
?
?
?
?
?
?
android eventbus ui sqlite http
原文:http://knight-black-bob.iteye.com/blog/2305456