Android RecyclerView使用

博客介绍了在Android开发中添加RecyclerView相关内容。先添加远程依赖,还涉及MainActivity和RecyclerAdapter。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先添加远程依赖

compile 'com.android.support:recyclerview-v7:27.1.1'

MainActivity

public class MainActivity extends AppCompatActivity {
    private RecyclerView recyclerView;
    private RecyclerAdapter adapter;
    private List<Person> list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        recyclerView=findViewById(R.id.recyclerview);

        //设置横向
        LinearLayoutManager layoutManager= new LinearLayoutManager(this);
        layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
        recyclerView.setLayoutManager(layoutManager);

        getData();
        adapter = new RecyclerAdapter(this,list);
        recyclerView.setAdapter(adapter);
    }

    public List<Person> getData(){
        list = new ArrayList<Person>();
        for(int i=1;i<=15;i++){
            Person p = new Person(R.drawable.ic_launcher,i+"","我是第"+i);
            list.add(p);
        }
        return list;
    }
}

RecyclerAdapter

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


    static class ViewHolder extends RecyclerView.ViewHolder{
        ImageView imageView;
        TextView title;
        TextView content;
        View view;

        public ViewHolder(View itemView) {
            super(itemView);
            view=itemView;
            imageView=itemView.findViewById(R.id.imageview);
            title=itemView.findViewById(R.id.title1);
            content=itemView.findViewById(R.id.content);
        }
    }

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


    @NonNull
    @Override
    public RecyclerAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        //View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.item,parent,false);
        View view= LinearLayout.inflate(parent.getContext(),R.layout.item,null);
        final ViewHolder holder = new ViewHolder(view);
        holder.view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int position = holder.getAdapterPosition();
                Person person = list.get(position);
                Toast.makeText(v.getContext(),person.mContent,Toast.LENGTH_SHORT).show();
            }
        });
        return holder;
    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerAdapter.ViewHolder holder, int position) {
        //控件设置值
        Person person = list.get(position);
        holder.imageView.setBackgroundResource(person.mPicture);
        holder.title.setText(person.mTitle);
        holder.content.setText(person.mContent);
    }

    @Override
    public int getItemCount() {
        if(list==null){
            return 0;
        }
        return list.size();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值