0
저는 발리와 GSON을 사용하여 원격 JSON을 구문 분석합니다. 내가 코드를 실행 한 후JSON을 ListView로 채울 수 없습니다.
public class LatestFragment extends ListFragment implements OnScrollListener {
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
arrItemList = new ArrayList<ItemListModel>();
va = new LatestAdapter(getActivity(), arrItemList);
lv = getListView();
setListAdapter(va);
lv.setOnScrollListener(this);
loadItemList(1);
}
private void loadItemList(int page) {
mRequestQueue = Volley.newRequestQueue(getActivity());
GsonRequest<LatestContainer> myReq = new GsonRequest<LatestContainer>(
Method.GET, url, LatestContainer.class,
createMyReqSuccessListener(), createMyReqErrorListener());
mRequestQueue.add(myReq);
}
private Response.Listener<LatestContainer> createMyReqSuccessListener() {
return new Response.Listener<LatestContainer>() {
@Override
public void onResponse(LatestContainer response) {
try {
for (int i = 0; i < response.getResults().size(); i++) {
ItemListModel ilm = new ItemListModel();
ilm.setCategory(response.getResults().get(i).getCategory());
ilm.setItem_id(response.getResults().get(i).getItem_id());
ilm.setName(response.getResults().get(i).getName());
ilm.setPrice(response.getResults().get(i).getPrice());
ilm.setUser_id(response.getResults().get(i).getUser_id());
arrItemList.add(ilm);
}
LatestAdapter
public class LatestAdapter extends BaseAdapter {
public LatestAdapter(Context context, ArrayList<ItemListModel> items) {
this.arrItemList = items;
this.context = context;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder vh;
lf = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (view == null) {
vh = new ViewHolder();
view = lf.inflate(R.layout.row_latest_listview, null);
vh.tvName = (TextView) view.findViewById(R.id.txtItemName);
vh.tvCategory = (TextView) view.findViewById(R.id.txtCategory);
vh.tvPrice = (TextView) view.findViewById(R.id.txtPrice);
vh.tvThumbnail = (ImageView) view.findViewById(R.id.imgPhoto);
view.setTag(vh);
} else {
vh = (ViewHolder) view.getTag();
}
ItemListModel nm = arrItemList.get(i);
vh.tvCategory.setText(nm.getCategory());
vh.tvPrice.setText("RM " + nm.getPrice());
vh.tvName.setText(nm.getName());
return view;
}
그러나, 목록보기가 채워하지 않는 것 : 여기 내 그것을 않습니다 조각입니다. 그러나 구문 분석은 성공적입니다. 나는 logcat에서 파싱 된 문자열을 볼 수있다. 그래서 비 직렬화는 여기서 문제가되지 않습니다. 지금 내가 뭘 잘못 했니?
당신의 어댑터에는 getCount()와 같이 당신이 오버 라이딩 한 다른 함수가 있어야합니다. – hypd09
또한 목록에 데이터가 입력되어 어댑터 생성자에게 전달되는지 확인하십시오. – Raghunandan
json 및 GSON 맵 클래스를 게시하십시오. –