Recyclerview的简单使用

RecyclerView 是新添加的一个用来取代ListView的SDK,它的灵活性与可替代性比listview更好。
效果图:
在这里插入图片描述
第一步:添加依赖

implementation 'com.android.support:recyclerview-v7:28.0.0'

布局省略
直接用

private RecyclerView recyclerView;//主体
private List<String> list;//自拟数据
private RecyclerAdapter recyclerAdapter;//适配器

/**
 * @param savedInstanceState
 */
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_recycle);
    initView();
    initData();
    initRecycle();
}

private void initRecycle() {
    //配置layoutmanger
    // 横向 纵向 各种花式布局
    LinearLayoutManager layoutManager=new LinearLayoutManager(this);
    layoutManager.setOrientation(LinearLayoutManager.VERTICAL);//设置方向
    recyclerView.setLayoutManager(layoutManager);
    //初始化适配器
    recyclerAdapter=new RecyclerAdapter(this,list);
    //配置adapter
    recyclerView.setAdapter(recyclerAdapter);
    //添加android自带的分割线
    //recyclerView.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL));
    //自定义分割线并添加
    DividerItemDecoration decoration=new DividerItemDecoration(this,DividerItemDecoration.VERTICAL);
    decoration.setDrawable(ContextCompat.getDrawable(this,R.drawable.divied));
    recyclerView.addItemDecoration(decoration);
    //刷新适配器
    recyclerAdapter.notifyDataSetChanged();
}

private void initData() {
    list=new ArrayList<>();
    for (int i = 0; i < 100; i++) {
        list.add("山明和水秀比你更有看头"+i);
    }
}

private void initView() {
    recyclerView=findViewById(R.id.recyclerview);
}

适配器部分

public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.MyHolder> {
private Context context;
private List<String> list;

public RecyclerAdapter(Context context, List<String> list) {
    this.context = context;
    this.list = list;
}

/**
 * 这个viewholder是用来初始化控件的
 */
class MyHolder extends RecyclerView.ViewHolder{
    TextView textView;
    public MyHolder(@NonNull View itemView) {
        super(itemView);
        textView=itemView.findViewById(R.id.text);
    }
}

/**
 * @param viewGroup
 * @return  这个方法是用来创建viewholder的
 * 引入xml传送给viewholder
 */
@NonNull
@Override
public MyHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
    View view=LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.recycle_item,viewGroup,false);
    MyHolder myHolder=new MyHolder(view);
    return myHolder;
}

/**
 * @param myHolder
 * @param  *这里是操作item的,绑定到视图
 */
@Override
public void onBindViewHolder(@NonNull MyHolder myHolder, final int position) {
    String s=list.get(position);
    myHolder.textView.setText(s);
    //对控件进行监听
    myHolder.textView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });
    myHolder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(context,list.get(position),Toast.LENGTH_SHORT).show();
        }
    });
}

@Override
public int getItemCount() {
    return list.size();
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值