package com.snail.travellingTrail.main.controller; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import net.tsz.afinal.FinalBitmap; import net.tsz.afinal.FinalHttp; import net.tsz.afinal.http.AjaxCallBack; import zrc.widget.SimpleFooter; import zrc.widget.SimpleHeader; import zrc.widget.ZrcListView; import zrc.widget.ZrcListView.OnStartListener; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.snail.travellingTrail.R; import com.snail.travellingTrail.common.RequestAddress; import com.snail.travellingTrail.common.ResponseList; import com.snail.travellingTrail.common.utils.JsonUtil; import com.snail.travellingTrail.square.SquareAdapter; public class SquareFragment extends Fragment { FinalHttp mFinalHttp; FinalBitmap mFinalBitmap,mAvatarFinalBitmap; View frameView; ZrcListView mZrcListView; SquareAdapter mSquareAdapter; ArrayList<HashMap<String,String>> list; HashMap<String,String> map; final static String TAG = "SquareFragment"; final static int UPDATE = 1; public static boolean REFRASH = false; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { frameView = inflater.inflate(R.layout.fragment_square, null); findid(); return frameView; } private void findid() { mZrcListView = (ZrcListView)frameView.findViewById(R.id.fragmet_square_lv); setListener(); } private void setListener() { mZrcListView.setOnRefreshStartListener(new zrcListViewRefresh()); init(); } class zrcListViewRefresh implements OnStartListener{ @Override public void onStart() { refrash(); } } private void refrash(){ REFRASH = true; http(REFRASH); } private void setListView() { // 设置下拉刷新的样式 SimpleHeader header = new SimpleHeader(getActivity()); header.setTextColor(getResources().getColor(R.color.main_green)); header.setCircleColor(getResources().getColor(R.color.main_green)); mZrcListView.setHeadable(header); // 设置加载更多的样式 SimpleFooter footer = new SimpleFooter(getActivity()); footer.setCircleColor(getResources().getColor(R.color.main_green)); mZrcListView.setFootable(footer); // 设置列表项出现动画 mZrcListView.setItemAnimForTopIn(R.anim.anim_topitem_in); mZrcListView.setItemAnimForBottomIn(R.anim.anim_bottomitem_in); } private void init() { setListView(); mFinalBitmap = FinalBitmap.create(getActivity()); mAvatarFinalBitmap = FinalBitmap.create(getActivity()); mFinalBitmap.configLoadingImage(R.drawable.bg_default_photo); mAvatarFinalBitmap.configLoadingImage(R.drawable.ic_default_avatar); list = new ArrayList<HashMap<String,String>>(); http(REFRASH); } private void http(final boolean REFRASH){ mFinalHttp = new FinalHttp(); mFinalHttp.get(RequestAddress.SQUARE_TRIP , new AjaxCallBack<Object>() { @Override public void onFailure(Throwable t, int errorNo, String strMsg) { Log.i(TAG, strMsg.toString()); mZrcListView.setRefreshFail("加载失败"); super.onFailure(t, errorNo, strMsg); } @Override public void onSuccess(Object t) { Log.i(TAG, t.toString()); analyzejson(t.toString(),null,REFRASH); super.onSuccess(t); } }); } protected void analyzejson(String jsonString,String tagName,boolean refrash) { List<Map<String, String>> list = JsonUtil.parseJson1(jsonString, tagName); ResponseList.SquareList = list; if(refrash && mSquareAdapter!=null){ mSquareAdapter.setData(list); }else{ mSquareAdapter = new SquareAdapter(getActivity(), list,mFinalBitmap,mAvatarFinalBitmap); mZrcListView.setAdapter(mSquareAdapter); } run(); } private void run() { new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(3000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } sendMessage(UPDATE); } }).start(); } private Handler handler = new Handler(){ @Override public void handleMessage(Message msg){ switch (msg.what){ case UPDATE: mZrcListView.setRefreshSuccess("加载成功"); mSquareAdapter.notifyDataSetChanged(); REFRASH = false; break; } super.handleMessage(msg); } }; private void sendMessage(int what){ Message msg = Message.obtain(); msg.what = what; handler.sendMessage(msg); msg.obj = "qwlejlqe"; } }