对RecyclerViewAdapter的个人理解

MyAdapter.java

package com.kyousuke.recycleviewtest;

import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import java.util.ArrayList;

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
    private ArrayList<String> list;//   数据数组
    static class ViewHolder extends RecyclerView.ViewHolder{
        TextView tv;    //RecyclerView的最大子View的 组成控件


        public ViewHolder(View view){   //View 为RecyclerView的最大子View(以下View均此意思)
            super(view);
            this.tv=(TextView)view.findViewById(R.id.tv);
        }
    }


    public MyAdapter(ArrayList<String> list){
        this.list=list;
    }
    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.num_layout,parent,false);
        ViewHolder holder=new ViewHolder(view);
        return holder;
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        String str=list.get(position);
        holder.tv.setText(list.get(position));
    }

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

MainActivity.java

package com.kyousuke.recycleviewtest;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    private RecyclerView rv;
    private MyAdapter adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        rv=findViewById(R.id.rv);
        
        
        ArrayList<String> list=new ArrayList<String>();
        for(int i=0;i<100;i++){
            list.add(String.valueOf(i));
        }//生成数组

        adapter=new MyAdapter(list);
        rv.setLayoutManager(new LinearLayoutManager(this)); //重要,容易遗忘
        rv.setAdapter(adapter);
    }
}
扫描二维码关注公众号,回复: 2345202 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_39773343/article/details/81104309