菜鸟笔记,每天积累一点点!
以GridView为例:
String sUrl ="www.******.com"; private void getFl() { OkGo.post(URLStr.sUrl ).tag(this).execute(new JsonCommCallback<FLListInfo>() { //请求服务器成功时 @Override public void onSuccess(FLListInfo flListInfo, Call call, Response response) { // 根据返回的state判断是否返回的数据是否正确 String state = flListInfo.STATE; if ("0002".equals(state)) { final FlAdapter Adapter = new FlAdapter(flListInfo.root); gridview.setAdapter(Adapter); // 实现动态的刷新列表的功能 flAdapter.notifyDataSetChanged(); // 布局大小发生变化时重新绘制 gridview.requestLayout(); // GridView中的item点击事件 gridview.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { ArrayList<FLInfo> infos = (ArrayList<FLInfo>) flAdapter.data; FLInfo info = flAdapter.data.get(position); Intent intent = new Intent(this, NewActivity.class); intent.putExtra("pos", position); intent.putExtra("name", info.KIND_NAME); intent.putExtra("infos", infos); startActivity(intent); } }); } else { } } @Override public void onError(Call call, Response response, Exception e) { ToastUitl super.onError(call, response, e); } }); }
GridView的数据适配器 Adapter
class FlAdapter extends com.***.***.***.BaseAdapter<FLInfo> { public FlAdapter(List<FLInfo> data) { super(data); } @Override public int getCount() { return data.size() > 10 ? 10 : data.size(); } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHodlert holder; if (convertView == null) { holder = new ViewHodlert(); convertView = LayoutInflater.from(this) .inflate(R.layout.homepage_category, parent, false); holder.img = (ImageView) convertView.findViewById(R.id.image); holder.kid= (TextView) convertView.findViewById(R.id.text); holder.name= (TextView) convertView.findViewById(R.id.text1); convertView.setTag(holder); } else { holder = (ViewHodlert) convertView.getTag(); } FLInfo info = data.get(position); holder.name.setText(info.KIND_NAME); String img = info.IMG_URL; if (img != null) { Glide.with(BuyFragment.this).load(img).into(holder.img); } return convertView; } }
class ViewHodlert { public ImageView img; public TextView pid; public TextView name;
因为我的返回数据是:
{"root":[{"KIND_ID":"***","KIND_NAME":"***","IMG_URL":"***"} ,{……},{……}],"MESSAGE":"操作成功!","STATE":"0002"}
所以创建了相应的类:
FLListInfo
public class FLListInfo implements Serializable { private static final long VersionUID = 1L; public ArrayList<FLInfo> root = new ArrayList<FLInfo>(); public String MESSAGE ; public String STATE; public String KIND_NAME; }
FLInfo:
public class FLInfo implements Serializable { private static final long VersionUID = 1L; public String KIND_ID; public String KIND_NAME; public String IMG_URL ; }
布局GridView的item布局是1个Image2个TextView,这里就不贴出来了
到此结束!