Recyerview的使用

来源:互联网 发布:淘宝人工客服电话多少 编辑:程序博客网 时间:2024/06/06 21:37

适配器

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