Android-RecyclerView

官方文档指南:

使用 RecyclerView 创建动态列表https://developer.android.google.cn/guide/topics/ui/layout/recyclerview?hl=zh-cn


配置环境和导入库;

local.properties >>> 输入或修改sdk的地址:sdk.dir=……

 导入recyclerview依赖库:

build.gradle >>> dependencies{}

implementation 'androidx.recyclerview:recyclerview:1.0.0'


java:

adapter:

public class couple_adapter extends RecyclerView.Adapter<couple_holder> {//继承RecyclerView.Adapter<ViewHolder>,ViewHolder即自己创建的的holder(如下方代码)

    //创建data集合,用于获取数据
    public List<couple_bean> datalist;
    public couple_adapter(List<couple_bean> datalist){
        this.datalist = datalist;
    }

    //以下三个是继承父类重写的方法
    @NonNull
    @Override
    public couple_holder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        //创建ViewHolder
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_list_item, parent, false);
        return new couple_holder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull couple_holder holder, int position) {
        //创建Bean类对象,获取position处的data,将data赋予ViewHolder中的组件,
        couple_bean bean = datalist.get(position);

        holder.icon.setImageResource(bean.icon);
        holder.text.setText(bean.text);
    }

    @Override
    public int getItemCount() {
        //返回数据集合长度
        return datalist.size();
    }
}

bean:

//创建数据demo
public class couple_bean {
    public int icon;
    public String text;
}

data:

public class couple_data {
    //创建icon集合
    public static int[] icons = {
            R.drawable.a1,
            R.drawable.a2,
            R.drawable.a3,
            R.drawable.a4,
            R.drawable.a5,
            R.drawable.a6,
            R.drawable.a7,
            R.drawable.a8,
            R.drawable.a9,
            R.drawable.a10,
            R.drawable.a11,
            R.drawable.a12,
            R.drawable.a13,
            R.drawable.a14,
            R.drawable.a15,
            R.drawable.a16,
            R.drawable.a17,
            R.drawable.a18,
            R.drawable.a19,
            R.drawable.a20
    };
}

viewholder:

public class couple_holder extends RecyclerView.ViewHolder {

    public final ImageView icon;
    public final TextView text;

    public couple_holder(@NonNull View itemView) {
        //调用父类构造方法
        super(itemView);

        icon = itemView.findViewById(R.id.icon);
        text = itemView.findViewById(R.id.text);
    }
}

MainActivity:

public class MainActivity extends AppCompatActivity {
    //创建数据集合
    List<couple_bean> datalist = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        RecyclerView recycler_view = findViewById(R.id.recycler_view);
        //调用数据,存入数据集合
        initData();
        //RecyclerView创建适配器
        recycler_view.setAdapter(new couple_adapter(datalist));
        //RecyclerView创建布局管理器
        recycler_view.setLayoutManager(new LinearLayoutManager(MainActivity.this));
    }

    public void initData(){
        for (int i=0; i<couple_data.icons.length; i++){//一是:注意等号的使用;二是:数据长度
            couple_bean data = new couple_bean();
            data.icon = couple_data.icons[i];
            data.text = "排名第" + i + "的傻逼。";
            datalist.add(data);
        }
    }
}

layout:

 activity_main:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

layout_list_item:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="90dp"
    android:gravity="center">

    <ImageView
        android:id="@+id/icon"
        android:layout_width="118dp"
        android:layout_height="88dp" />

    <TextView
        android:id="@+id/text"
        android:layout_width="240dp"
        android:layout_height="88dp"
        android:text="TextView" />

</LinearLayout>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android中,如果要进行RecyclerView的批量操作,可以通过以下几个步骤来实现。 首先,要创建一个自定义的RecyclerView适配器。在适配器中,我们可以添加一个boolean类型的数据成员,用于标记当前RecyclerView的批量操作状态。我们可以在适配器的构造方法中将该boolean类型的成员变量初始化为false。 其次,我们可以在RecyclerView的布局文件中添加一个全选的CheckBox。当用户点击全选CheckBox时,我们需要遍历RecyclerView的所有item并将其标记为选中状态,同时更新item对应的数据模型,使其选中状态为true。再次点击全选CheckBox时,我们需要取消所有item的选中状态。 然后,我们可以在RecyclerView的item布局文件中添加一个CheckBox来实现单个item的选中。我们可以通过监听CheckBox的点击事件,来更新item的选中状态,并刷新RecyclerView。 接下来,我们可以在RecyclerView的Activity或Fragment中创建一个菜单栏。在该菜单栏中,可以添加批量操作的选项,比如删除选中的item。当用户选择了批量操作的选项后,我们需要遍历RecyclerView的所有item,找到选中的item,并进行相应的批量操作。 最后,在RecyclerView适配器中增加一个方法,用来获取选中的item的位置。通过这个方法,我们可以获取选中的item的位置,进而获取选中的item的数据,并进行相应的批量操作。 通过以上的步骤,我们可以实现RecyclerView的批量操作,让用户能够方便地进行全选、取消全选、单个item选中和批量操作的功能。这样可以提高用户的使用体验,并方便用户进行操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值