RecyclerView

来源:互联网 发布:税收数据质量管理 编辑:程序博客网 时间:2024/05/19 13:06
package com.qianqian.demozk2;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support.v7.widget.DividerItemDecoration;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.TextView;import com.google.gson.Gson;import com.nostra13.universalimageloader.core.ImageLoader;import com.qianqian.demozk2.bean.ShopData;import com.qianqian.demozk2.okhttp.OKHttpUtils;import com.qianqian.demozk2.okhttp.OnUiCallback;import java.io.IOException;import java.util.ArrayList;import java.util.List;import okhttp3.Call;public class ShopActivity extends AppCompatActivity {    RecyclerView rv;    ShopData shopData;    myAdapter adapter;    List<ShopData.ResultBean.BrandsBean> mlistAdv=new ArrayList<>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_shop);        //找控件        rv= (RecyclerView) findViewById(R.id.rv);        //数据源        initdata();        LinearLayoutManager manager = new LinearLayoutManager(this);        rv.setLayoutManager(manager);        rv.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL));        adapter=new myAdapter();        rv.setAdapter(adapter);    }    //数据源    private void initdata() {        OKHttpUtils.getInstance().doGet("http://www.babybuy100.com/API/getShopOverview.ashx", new OnUiCallback() {            @Override            public void onFailed(Call call, IOException e) {            }            @Override            public void onsuccess(String result) throws IOException {                //解析                Gson gson=new Gson();                shopData = gson.fromJson(result, ShopData.class);                    mlistAdv.addAll(shopData.getResult().getBrands());                adapter.notifyDataSetChanged();            }        });    }    //适配器    class myAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{        public static final int TYPE_ONE = 0;        public static final int TYPE_TWO = 1;        @Override        public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {            if(viewType == TYPE_ONE){                View view = View.inflate(ShopActivity.this, R.layout.recycler_item, null);                ViewHolder holder = new ViewHolder(view);                return holder;          }else{               View view1 = View.inflate(ShopActivity.this, R.layout.recycler_item1, null);               ViewHolder1 holder1 = new ViewHolder1(view1);               return holder1;           }        }        @Override        public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {            if (holder instanceof  ViewHolder){               ((ViewHolder) holder).tv1.setText(mlistAdv.get(position).getTitle());                ImageLoader.getInstance().displayImage(mlistAdv.get(position).getPic(),((ViewHolder) holder).iv1);            }            if (holder instanceof  ViewHolder1){                ((ViewHolder1) holder).tv.setText(mlistAdv.get(position).getTitle());                ImageLoader.getInstance().displayImage(mlistAdv.get(position).getPic(),((ViewHolder1) holder).iv);            }        }        @Override        public int getItemCount() {            return mlistAdv==null ? 0:mlistAdv.size();        }        @Override        public int getItemViewType(int position) {            if(position % 2 == 0){               return TYPE_ONE;            }else {                return TYPE_TWO;            }        }        public class ViewHolder extends RecyclerView.ViewHolder {            TextView tv1;            ImageView iv1;            public ViewHolder(View itemView) {                super(itemView);                tv1= (TextView) findViewById(R.id.tv1);                iv1= (ImageView) findViewById(R.id.iv1);            }        }        public class ViewHolder1 extends RecyclerView.ViewHolder {            TextView tv;            ImageView iv;            public ViewHolder1(View itemView) {                super(itemView);                tv = (TextView) itemView.findViewById(R.id.tv);                iv = (ImageView) itemView.findViewById(R.id.iv);            }        }    }}