//P层
public class NewsPresenter { private Context context; private INewsView inv; public NewsPresenter(Context context,INewsView inv){ this.context=context; this.inv=inv; } public void getNews(String str,int i){ Map<String,String> map=new HashMap<>(); map.put("source","android"); map.put("keywords",str+""); map.put("page",i+""); HttpUtils.getInstance().get("http://120.27.23.105/product/searchProducts", map, new CallBack() { @Override public void onSuccess(String tag, Object o) { DateBean bean=(DateBean) o; List<DateBean.DataBean> data = bean.getData(); List<ListBean> list=new ArrayList<ListBean>(); for(int i=0;i<data.size();i++){ String images = data.get(i).getImages(); String[] split = images.split("!"); list.add(new ListBean(split[0],data.get(i).getTitle(),data.get(i).getPrice()+"")); } Log.i("hhh",list.size()+""); inv.success(tag,list); } @Override public void onFailed(String tag, Exception e) { inv.filed(tag,e); } },"news", DateBean.class); } public void detachView(){ if(inv!=null){ inv=null; } } }
//MainActivity
public class MainActivity extends AppCompatActivity implements INewsView{ private ImageView imageview; private EditText editText; private Button button; private XRecyclerView recyclerView; private List<ListBean> list; private Adapter adapter; private int i=1; private boolean flag=true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); //设置可以上拉 recyclerView.setPullRefreshEnabled(true); recyclerView.setLoadingMoreEnabled(true); //设置上拉下拉样式 recyclerView.setRefreshProgressStyle(ProgressStyle.BallSpinFadeLoader); recyclerView.setLoadingMoreProgressStyle(ProgressStyle.BallClipRotate); //线性布局管理器 LinearLayoutManager manager=new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false); //添加布局管理器 recyclerView.setLayoutManager(manager); adapter = new Adapter(MainActivity.this,list,1); recyclerView.setAdapter(adapter); //设置监听 recyclerView.setLoadingListener(new XRecyclerView.LoadingListener() { //下拉 @Override public void onRefresh() { i=1; list.clear(); loaddata(i); recyclerView.refreshComplete(); } //上拉 @Override public void onLoadMore() { i++; loaddata(i); recyclerView.loadMoreComplete(); } }); //Button搜索按钮进行监听 button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { i=1; list.clear(); loaddata(i); } }); //切换布局图片的监听 imageview.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(flag){ GridLayoutManager gridLayoutManager=new GridLayoutManager(MainActivity.this,2,LinearLayoutManager.VERTICAL,false); recyclerView.setLayoutManager(gridLayoutManager); adapter=new Adapter(MainActivity.this,list,2); recyclerView.setAdapter(adapter); flag=false; imageview.setImageResource(R.drawable.lv_icon); }else { LinearLayoutManager linearLayoutManager=new LinearLayoutManager(MainActivity.this,LinearLayoutManager.VERTICAL,false); recyclerView.setLayoutManager(linearLayoutManager); adapter=new Adapter(MainActivity.this,list,1); recyclerView.setAdapter(adapter); flag=true; imageview.setImageResource(R.drawable.grid_icon); } } }); } //根据edidtext上输入的值判断加载什么数据 public void loaddata(int i){ String str = editText.getText().toString().trim(); if(str.trim().equals("手机")||str.trim().equals("笔记本")){ NewsPresenter presenter=new NewsPresenter(MainActivity.this,MainActivity.this); presenter.getNews(str,i); }else { Toast.makeText(MainActivity.this,"请输入正确的信息",Toast.LENGTH_SHORT).show(); } } private void initView() { imageview = (ImageView) findViewById(R.id.imageView); editText = (EditText) findViewById(R.id.editText); button = (Button) findViewById(R.id.button); recyclerView = (XRecyclerView) findViewById(R.id.xrecyclerview); list = new ArrayList<ListBean>(); } @Override public void success(String tag, List<ListBean> lis) { list.addAll(lis); adapter.notifyDataSetChanged(); } @Override public void filed(String tag, Exception e) { } }
//Adapter
public class Adapter extends RecyclerView.Adapter<Adapter.ViewHolder>{ private Context context; private List<ListBean> list; private int j; public Adapter(Context context, List<ListBean> list, int j) { this.context = context; this.list = list; this.j = j; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { //子条目布局 if(j==1){ View view= View.inflate(context,R.layout.item_1,null); ViewHolder viewHolder=new ViewHolder(view); return viewHolder; }else { View view= View.inflate(context,R.layout.item_2,null); ViewHolder viewHolder=new ViewHolder(view); return viewHolder; } } @Override public void onBindViewHolder(ViewHolder holder, int position) { Glide.with(context).load(list.get(position).getImg()).into(holder.img); holder.textview.setText(list.get(position).getTitle()); holder.textview2.setText(list.get(position).getPrice()); } @Override public int getItemCount() { return list.size(); } class ViewHolder extends RecyclerView.ViewHolder{ private TextView textview; private TextView textview2; private ImageView img; public ViewHolder(View itemView) { super(itemView); img=(ImageView)itemView.findViewById(R.id.image); textview=(TextView)itemView.findViewById(R.id.textView); textview2=(TextView)itemView.findViewById(R.id.textView2); } } }