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); } } }