ListView 或 GridView网络加载数据

菜鸟笔记,每天积累一点点!

 

以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,这里就不贴出来了

到此结束!

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值