关于RecyclerView的简单应用教程

本文介绍了RecyclerView的基本应用,作为ListView的替代品,它提供了更高的灵活性。通过编写适配器和设置布局管理器,可以实现类似ListView的效果。此外,还展示了如何通过修改LayoutManager实现横向滚动和交错分布,使布局更具多样性。

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

RecyclerView基本已经取代ListView,而且灵活度很高。要怎么去用它呢,其实主要就是把设配器(adapter)给写好就行了。


Adapter代码:

package com.example.administrator.myapplication;

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.List;


public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
    List<Fruit> mlist;
    public class ViewHolder extends RecyclerView.ViewHolder{  // 利用RecyvlerView本身的ViewHoler方法进行控件的封装,使fruititem各个控件的实例化
        TextView mID;
        TextView mName;

        public ViewHolder(View itemView) {
            super(itemView);    //各控件的实例化
            mID = (TextView) itemView.findViewById(R.id.mId);
            mName = (TextView) itemView.findViewById(R.id.mName);
        }
    }
    //将列表传进
    public MyAdapter(List<Fruit> list){
        mlist =list;
    }
    //加载整个layout布局,创建ViewHolder实例
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.fruititem,parent,false);
        ViewHolder Holder = new ViewHolder(view);       //把上面的fruititem整个布局中各个控件实例化
        return Holder;
    }

    //onBindViewHolder就是填充数据的过程
    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {   //此holder指上面ViewHolder通过继承父类所得。
        //加载内容进控件
        Fruit fruit= mlist.get(position);         //获取list位置,下面开始为控件填充数据
        holder.FruitName.setText(fruit.getMname());
        holder.FruitID.setText(fruit.getmID());
    }

    @Override
    public int getItemCount() {
        return mlist.size();//获取列表总长度
    }
}
上面的Fruit是一个封装类,里面两个String值,一个是name,一个是Id。

而在布局R.layout.fruititem中为了简单,我直接用了两个TextView。一次可以类推。用其他控件都一样。


而在主函数中的代码,只需要添加:

List<Fruit> mfruitlist = new ArrayList<>();
initFruit();                                //向list添加数据
RecyclerView mrecylerview = (RecyclerView) findViewById(R.id.mrecylerview);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);   
mrecylerview.setLayoutManager(layoutManager);
MyAdapter adapter = new MyAdapter(mfruitlist);
mrecylerview.setAdapter(adapter);

以上就是实现跟之前ListView同样的效果。


而RecyclerView还有新的拓展功能。能实现横向滚动。还有交错分布效果。


横向滚动只需要修改:

List<Fruit> mfruitlist = new ArrayList<>();
initFruit();                                //向list添加数据
RecyclerView mrecylerview = (RecyclerView) findViewById(R.id.mrecylerview);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);   
layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);       //多添加这一项,就可以实现横向分布滚动
mrecylerview.setLayoutManager(layoutManager);
MyAdapter adapter = new MyAdapter(mfruitlist);
mrecylerview.setAdapter(adapter);

如图:



要实现交错分布效果,也是只需要修改Activity的代码换个LayoutManager:

就把LinearLayoutManager切掉。

StaggeredGridLayoutManager layoutManager = new StaggeredGridLayoutManager(5,StaggeredGridLayoutManager.VERTICAL);//这里的5指的是把布局分为五纵列
mrecylerview.setLayoutManager(layoutManager);

如果把 StaggeredGridLayoutManager里面的 VERTICAL 换成  HORIZONTAL

则这里的数字5就是把布局分成5横列,横向滚动数据。

效果如图:

Vertical       Horizontal

             


进入互联网新媒体时代,“股吧”作为一类专门针对上市公司的社交媒介,已经成为中小投资者分享投资经验和发表对公司运营意见的重要平台,股吧舆论作为投资者情绪的反映,直接影响股票的市场表现。 一、上市公司股吧舆论数据的介绍 “股吧”作为新兴社交媒体代表,本身并不提供信息,仅提供多方交互平台,其将个体间的实时交流和回应形成公众关注和舆论;因此,股吧舆论数据可以帮助研究人员深入分析网络舆论与企业表现之间的关系,并为投资者提供情绪波动的参考依据。 本分享数据年份为2008年到2023年,数据来源于东方财富网股吧,涉及A股上市公司的讨论情况,涵盖了股吧发帖数量、阅读量、评论次数等多个维度。 二、数据指标 指标名称 描述 计算方法 Post 股吧发帖数量 上市公司当年度东方财富网股吧发帖数量之和加1并取自然对数 Positive 正面帖子数量 上市公司当年度东方财富网股吧正面帖子数量之和加1并取自然对数 Negative 负面帖子数量 上市公司当年度东方财富网股吧负面帖子数量之和加1并取自然对数 Neutral 中性帖子数量 上市公司当年度东方财富网股吧中性帖子数量之和加1并取自然对数 Read 股吧阅读量 上市公司当年度东方财富网股吧被阅读次数之和加1并取自然对数 Comment 股吧评论量 上市公司当年度东方财富网股吧被跟帖评论次数之和加1并取自然对数 三、数据说明 本数据集的统计范围为A股上市公司,数据分为三个版本: 未剔除金融STPT未缩尾版本 已剔除金融STPT未缩尾版本 已剔除金融STPT已缩尾版本 数据提供格式:Excel、dta格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值