package com.jaf.biubiu;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.jaf.bean.BeanNearbyItem;
import com.jaf.bean.ResponseMyQA;
import com.jaf.jcore.AbsWorker;
import com.jaf.jcore.BindView;
import com.jaf.jcore.BindableFragment;
import com.jaf.jcore.JacksonWrapper;
import com.jaf.jcore.NetworkListView;
import org.json.JSONObject;
import java.util.ArrayList;
/**
* Created by jarrah on 2015/4/21.
*/
public class FragmentMyA extends BindableFragment{
public static final String KEY_MY_A = "my_a";
@BindView(id = R.id.myAList)
private NetworkListView<ViewMyQAItem, BeanNearbyItem> mListView;
private com.jaf.jcore.AbsWorker.AbsLoader<com.jaf.biubiu.ViewMyQAItem,com.jaf.bean.BeanNearbyItem> loader;
public FragmentMyA() {}
public static FragmentMyA newInstance(Bundle arg) {
FragmentMyA fragmentMyQ = new FragmentMyA();
fragmentMyQ.setArguments(arg);
return fragmentMyQ;
}
public static Fragment newInstance(ActivityMyQA.Extra extra) {
Bundle bundle = new Bundle();
bundle.putSerializable(KEY_MY_A, extra);
return newInstance(bundle);
}
@Override
protected int onLoadViewResource() {
return R.layout.fragment_my_a;
}
@Override
protected void onViewDidLoad(Bundle savedInstanceState) {
super.onViewDidLoad(savedInstanceState);
getActivity().setTitle(R.string.myAnswer);
loader = new AbsWorker.AbsLoader<ViewMyQAItem, BeanNearbyItem>() {
@Override
public String parseNextUrl(JSONObject response) {
return Constant.API;
}
@Override
public JSONObject parseNextJSON(JSONObject response) {
ResponseMyQA responseMyQA = JacksonWrapper.json2Bean(response, ResponseMyQA.class);
ArrayList<BeanNearbyItem> data = responseMyQA.getReturnData().getContData();
if(data.size() > 0 ) {
int lastId = data.get(data.size() - 1).getSortId();
return U.buildMyAList(false, lastId);
}
return null;
}
@Override
public ArrayList<BeanNearbyItem> parseJSON2ArrayList(JSONObject response) {
ResponseMyQA responseMyQA = JacksonWrapper.json2Bean(response, ResponseMyQA.class);
if(responseMyQA != null) {
return responseMyQA.getReturnData().getContData();
}
return null;
}
@Override
public void updateItemUI(int position,final BeanNearbyItem data, ViewMyQAItem itemView) {
itemView.setData(data);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ActivityDetail.Extra extra = new ActivityDetail.Extra();
extra.questId = data.getQuestId();
extra.fromNearby = data;
ActivityDetail.start(getActivity(), extra);
}
});
}
@Override
public ViewMyQAItem makeItem(LayoutInflater inflater, int position, View convertView, ViewGroup parent) {
return new ViewMyQAItem(getActivity());
}
};
mListView.request(Constant.API, loader, U.buildMyAList(true, 0));
mListView.setEmptyView(EmptyHelper.getEmptyView(getActivity(), R.drawable.bg_qa_empty, R.string.emptyMyA));
}
}