RecyclerView瀑布流展示数据

来源:互联网 发布:电气学什么软件 编辑:程序博客网 时间:2024/06/05 17:33

P层

public class ImagePresaenter {     private ImgView inv;         public void attachView(ImgView inv){             this.inv=inv;         }         public void getNews(){             Map<String,String> map=new HashMap<>();            // map.put("uri","homepage");             HttpUtils.getInstance().get("http://result.eolinker.com/umIPmfS6c83237d9c70c7c9510c9b0f97171a308d13b611?uri=homepage", map, new CallBack() {                 @Override                 public void onSueecss(String tag, Object o) {                        ImageBean imagebean=(ImageBean) o;                     if(imagebean!=null){                         List<ImageBean.DataBean.SubjectsBean> song_list = imagebean.getData().getSubjects();                         List<ImageList> list=new ArrayList<ImageList>();                         for(int i=0;i<song_list.size();i++){                            list.add(new ImageList(song_list.get(i).getImage(),song_list.get(i).getTitle()));                         }                         inv.ImgSueecss(tag,list);                     }                 }                 @Override                 public void onFailed(String tag, Exception e) {                        inv.ImgFailed(tag,e);                 }             }, "news", ImageBean.class);         }         public void detachView(){             if(inv!=null){                 inv=null;             }         }}

//MainActivity

public class MainActivity extends AppCompatActivity implements ImgView{    private RecyclerView recyclerView;    private List<ImageList> imageList;    private RecyclerAdapter adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        recyclerView = (RecyclerView) findViewById(R.id.recyclerView);        imageList = new ArrayList<>();        //设置LayoutManager        recyclerView.setLayoutManager(new StaggeredGridLayoutManager(2, LinearLayoutManager.VERTICAL));        //设置Adapter        adapter = new RecyclerAdapter(imageList,MainActivity.this);        recyclerView.setAdapter(adapter);        //p层        ImagePresaenter presaenter=new ImagePresaenter();        presaenter.getNews();        presaenter.attachView(this);    }    @Override    public void ImgSueecss(String tag, List<ImageList> imgList) {        imageList.addAll(imgList);        adapter.notifyDataSetChanged();    }    @Override    public void ImgFailed(String tag, Exception e) {    }}

//Adapter

public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.RecyclerHolder>{    private List<ImageList> list;    private Context context;    public RecyclerAdapter( List<ImageList> list, Context context) {        this.list = list;        this.context = context;    }    @Override    public RecyclerHolder onCreateViewHolder(ViewGroup parent, int viewType) {        View view=View.inflate(context, R.layout.recycleview_item,null);        RecyclerHolder holder=new RecyclerHolder(view);        return holder;    }    @Override    public void onBindViewHolder(RecyclerHolder holder, int position) {        Glide.with(context).load(list.get(position).getImg()).into(holder.imageView);        holder.textView.setText(list.get(position).getTitle());        holder.imageView.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                context.startActivity(new Intent(context, Main2Activity.class));            }        });    }    @Override    public int getItemCount() {        return list.size();    }    public static class RecyclerHolder extends RecyclerView.ViewHolder{        ImageView imageView;        TextView textView;        public RecyclerHolder(View itemView) {            super(itemView);            imageView = (ImageView) itemView.findViewById(R.id.masonry_item_img);            textView = (TextView) itemView.findViewById(R.id.masonry_item_title);        }    }}