RecyclerView(多条目)

来源:互联网 发布:淘宝页面怎么设计 编辑:程序博客网 时间:2024/05/22 00:52
package com.example.recyclerview;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support.v7.widget.GridLayoutManager;import android.support.v7.widget.RecyclerView;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {    private List<String> list;    private RecyclerView rv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        rv = (RecyclerView) findViewById(R.id.rv);        initRV();    }    private void initRV() {        initList();        //得到适配器        MyRreyclerView1 rreyclerView1 = new MyRreyclerView1();        //绑定        rv.setAdapter(rreyclerView1);        //布局效果        GridLayoutManager manager = new GridLayoutManager(this,3);        //绑定布局        rv.setLayoutManager(manager);    }    private void initList() {        list = new ArrayList<>();        for (int i = 0; i < 100; i++) {            list.add("破亚美"+i);        }    }    class  MyRreyclerView1 extends RecyclerView.Adapter<RecyclerView.ViewHolder>{        public static final int TYPE_ONE = 1;        public static  final int TYPE_TOW = 2;        @Override        public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {            //判断展示不同的布局            if (viewType == TYPE_ONE){                View view = View.inflate(MainActivity.this,R.layout.rv1,null);                MyViewHolder1 holder1 = new MyViewHolder1(view);                return holder1;            }else{                View view1 = View.inflate(MainActivity.this,R.layout.tv2,null);                MyViewHolder2 holder2 = new MyViewHolder2(view1);                return holder2;            }        }        @Override        public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {            //输入值            if (holder instanceof MyViewHolder1){                 ((MyViewHolder1) holder).tv.setText("");            }            if (holder instanceof MyViewHolder2){                ((MyViewHolder2) holder).im.setText(list.get(position));            }        }        @Override        public int getItemCount() {            return list == null ? 0 :list.size();        }        //判断多条目方法        @Override        public int getItemViewType(int position) {            if (position % 2 ==0  ){                return  TYPE_ONE;            }else {                return TYPE_TOW;            }        }    }    //Holder1    class  MyViewHolder1 extends RecyclerView.ViewHolder{        private final TextView tv;        public MyViewHolder1(View itemView) {            super(itemView);            tv = (TextView) itemView.findViewById(R.id.tv);        }    }    //Holder2    class MyViewHolder2 extends  RecyclerView.ViewHolder{        private final TextView im;        public MyViewHolder2(View itemView) {            super(itemView);            im = (TextView) itemView.findViewById(R.id.tv2);        }    }}

原创粉丝点击