RecyclerView根据条件展示数据点击图片更改布局上下拉

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值