Recyerview的使用

适配器

public class MySearchAdapter extends RecyclerView.Adapter<MySearchAdapter.ViewHolder> {

    private Context context;
    private List<Fen_Book> list;
    private int q;

    public MySearchAdapter(Context context, List<Fen_Book> list, int q) {
        this.context = context;
        this.list = list;
        this.q = q;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        if (q == 1) {
            View view = LayoutInflater.from(context).inflate(R.layout.book_layout, null);
            ViewHolder viewHolder = new ViewHolder(view);
            return viewHolder;
        } else {
            View view = LayoutInflater.from(context).inflate(R.layout.ver_layout, null);
            ViewHolder viewHolder = new ViewHolder(view);
            return viewHolder;
        }

    }

    //声明自己的一个事件回调接口
    public interface OnItemClickListener {
        //条目点击事件
        void setOnItemClick(View view, int position);

        //条目长按事件
        void setOnItemLongClick(View view, int position);
    }

    private OnItemClickListener onItemClickListener;

    public void setOnItemClickListener(OnItemClickListener onItemClickListener) {

        this.onItemClickListener = onItemClickListener;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, final int position) {
        holder.text.setText(list.get(position).getTitle());
        holder.oldprice.setText(list.get(position).getNewprice() + "");
        String img = list.get(position).getImg();
        String[] split = img.split("\\|");
        ImageLoader.getInstance().displayImage(split[0], holder.img);

        if (null != onItemClickListener) {
            //回调点击事件
            holder.itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //回调
                    onItemClickListener.setOnItemClick(v, position);
                }
            });
            holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View v) {
                    onItemClickListener.setOnItemLongClick(v, position);
                    return true;//消费掉
                }
            });
        }
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    class ViewHolder extends RecyclerView.ViewHolder {
        ImageView img;
        TextView text;
        TextView oldprice;

        public ViewHolder(View itemView) {
            super(itemView);
            img = (ImageView) itemView.findViewById(R.id.book_img);
            text = (TextView) itemView.findViewById(R.id.book_text);
            oldprice = (TextView) itemView.findViewById(R.id.text_oldprice);
        }
    }
}

mian1

public class MainActivity extends AppCompatActivity implements IFenSouView {
    private TextView back;
    private EditText edit;
    private ImageView img;
    private Button btn_sou;
    private FenSouPresenter fenSouPresenter;
    private RecyclerView rc;
    private int q = 1;
    private boolean flag = true;
    private MySearchAdapter madapter;
    private List<Fen_Book> list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        back = (TextView) findViewById(R.id.fen_btn_back);
        edit = (EditText) findViewById(R.id.fen_edit);
        img = (ImageView) findViewById(R.id.fen_img);
        btn_sou = (Button) findViewById(R.id.fen_btn_sou);
        rc = (RecyclerView) findViewById(R.id.fen_rc);
        //跟p层关联
        fenSouPresenter = new FenSouPresenter(this);

        //点击返回  结束当前页面
        back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });

        //点击搜索按钮获取到输入框的值
        btn_sou.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String name = edit.getText().toString();
                if (name.trim().equals(null) || name.trim().equals("")) {
                    Toast.makeText(MainActivity.this, "请输入内容", Toast.LENGTH_SHORT).show();
                } else {
                    fenSouPresenter.getName(edit.getText().toString().trim());
                }
            }
        });
    }

    @Override
    public void onSuccess(final List<Fen_Book> list) {
        LinearLayoutManager manager = new LinearLayoutManager(MainActivity.this, LinearLayoutManager.VERTICAL, false);
        rc.setLayoutManager(manager);
        madapter = new MySearchAdapter(MainActivity.this, list, 1);
        rc.setAdapter(madapter);
        madapter.setOnItemClickListener(new MySearchAdapter.OnItemClickListener() {
            @Override
            public void setOnItemClick(View view, int position) {
                Intent intent = new Intent(MainActivity.this, Main_Fen_Show.class);
                intent.putExtra("id", list.get(position).getId());
                startActivity(intent);
            }

            @Override
            public void setOnItemLongClick(View view, int position) {

            }
        });
        //图片的点击事件
        img.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (flag) {
                    GridLayoutManager manager = new GridLayoutManager(MainActivity.this, 2, LinearLayoutManager.VERTICAL, false);

                    rc.setLayoutManager(manager);
                    madapter = new MySearchAdapter(MainActivity.this, list, 1);
                    rc.setAdapter(madapter);
                    madapter.setOnItemClickListener(new MySearchAdapter.OnItemClickListener() {
                        @Override
                        public void setOnItemClick(View view, int position) {
                            Intent intent = new Intent(MainActivity.this, Main_Fen_Show.class);
                            intent.putExtra("id", list.get(position).getId());
                            startActivity(intent);
                        }

                        @Override
                        public void setOnItemLongClick(View view, int position) {

                        }
                    });
                    img.setImageDrawable(getResources().getDrawable(R.drawable.grid_icon));
                    flag = false;
                } else {
                    LinearLayoutManager manager = new LinearLayoutManager(MainActivity.this, LinearLayoutManager.VERTICAL, false);
                    rc.setLayoutManager(manager);
                    madapter = new MySearchAdapter(MainActivity.this, list, 2);
                    rc.setAdapter(madapter);
                    madapter.setOnItemClickListener(new MySearchAdapter.OnItemClickListener() {
                        @Override
                        public void setOnItemClick(View view, int position) {
                            Intent intent = new Intent(MainActivity.this, Main_Fen_Show.class);
                            intent.putExtra("id", list.get(position).getId());
                            startActivity(intent);
                        }

                        @Override
                        public void setOnItemLongClick(View view, int position) {

                        }
                    });
                    img.setImageDrawable(getResources().getDrawable(R.drawable.lv_icon));
                    flag = true;
                }
            }
        });
    }

    @Override
    public void onFailed() {

    }

    @Override
    public void onPidSuccess(List<Xiangqing> list) {

    }

    @Override
    public void onPidFailed() {

    }

    @Override
    public void onAddSuccess(String msg) {

    }

    @Override
    public void onAddFailed(String msg) {

    }

}

mian2

public class Main_Fen_Show extends AppCompatActivity implements IFenSouView {

    private RecyclerView rc;
    private MySearchShowAdapter mySearchShowAdapter;
    private int id;
    private FenSouPresenter fenSouPresenter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main__fen__show);
        rc = (RecyclerView) findViewById(R.id.rc);
        Intent intent = getIntent();
        int id = intent.getIntExtra("id", this.id);
        fenSouPresenter = new FenSouPresenter(this);
        fenSouPresenter.getPid(id);

    }

    @Override
    public void onSuccess(List<Fen_Book> list) {

    }

    @Override
    public void onFailed() {

    }

    @Override
    public void onPidSuccess(List<Xiangqing> list) {
        rc.setLayoutManager(new GridLayoutManager(Main_Fen_Show.this, 1, GridLayoutManager.VERTICAL, false));
        mySearchShowAdapter = new MySearchShowAdapter(Main_Fen_Show.this, list);
        rc.setAdapter(mySearchShowAdapter);
    }

    @Override
    public void onPidFailed() {

    }

    @Override
    public void onAddSuccess(String msg) {

    }

    @Override
    public void onAddFailed(String msg) {

    }
}

//适配器2

public class MySearchShowAdapter extends RecyclerView.Adapter<MySearchShowAdapter.ViewHolder> implements IFenSouView {

    private Context context;
    private List<Xiangqing> list;
    private FenSouPresenter fenSouPresenter;
    public MySearchShowAdapter(Context context, List<Xiangqing> list) {
        this.context = context;
        this.list = list;
    }

    @Override
    public MySearchShowAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.fen_show, null);
        ViewHolder viewHolder = new ViewHolder(view);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(MySearchShowAdapter.ViewHolder holder, final int position) {
        String img = list.get(position).getImg();
        String[] split = img.split("\\|");
        ImageLoader.getInstance().displayImage(split[0], holder.img);
        holder.text.setText(list.get(position).getTitle());
        holder.textprice.setText(list.get(position).getPrice() + "");

        fenSouPresenter = new FenSouPresenter(this);
        holder.fen_btn_jia.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                fenSouPresenter.getUid(list.get(position).getPid());
            }
        });
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    @Override
    public void onSuccess(List<Fen_Book> list) {

    }

    @Override
    public void onFailed() {

    }

    @Override
    public void onPidSuccess(List<Xiangqing> list) {

    }

    @Override
    public void onPidFailed() {

    }

    @Override
    public void onAddSuccess(String msg) {
        Toast.makeText(context, msg + "", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onAddFailed(String msg) {
        Toast.makeText(context, msg + "", Toast.LENGTH_SHORT).show();
    }

    class ViewHolder extends RecyclerView.ViewHolder {
        ImageView img;
        TextView text;
        TextView textprice;
        Button fen_btn_jia;

        public ViewHolder(View itemView) {
            super(itemView);
            img = (ImageView) itemView.findViewById(R.id.img);
            text = (TextView) itemView.findViewById(R.id.text);
            textprice = (TextView) itemView.findViewById(R.id.textprice);
            fen_btn_jia = (Button) itemView.findViewById(R.id.fen_btn_jia);
        }
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值