关于recycle view中对于onBindViewHolder方法中的position的相关实例(仅供参考)

在我们的日常生活中,现在基本上是一个属于刷剧刷视频的时代,不难发现,我们点击每一个不同的视频或文章,它跳转到的界面的内容也不一样

而这些东西在我们的Android里面就是recycle view的使用。

我们在写recycle view的时候就不得不对其进行一些初始化(以下仅作参考!)

布局展示

而展示在recycle view的布局就是我们写的item,该实例就是写了一个类似于教育头条的布局样式。

public void onBindViewHolder(@NonNull MyViewHolder holder, @SuppressLint("RecyclerView") int position) {}

该方法就是可以操作item中的控件,当然在这之前还是要申明item的相应控件(示例如下)

public class MyViewHolder extends RecyclerView.ViewHolder{
        TextView textView2;
        TextView textView12;
        TextView textView16;
        TextView textView17;
        TextView textView18;

        ImageView imageView13;

        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            textView2 = itemView.findViewById(R.id.textView2);
            textView12 = itemView.findViewById(R.id.textView12);
            textView16 = itemView.findViewById(R.id.textView16);
            textView17 = itemView.findViewById(R.id.textView17);
            textView18 = itemView.findViewById(R.id.textView18);
            imageView13 = itemView.findViewById(R.id.imageView13);
        }
    }

在操作的控件的时候,我们会有看到一个position的参数,对于这个参数的理解就是每个item都会有它的位置id,例如如下所示

需要注意的是position是从0开始变化的!!!

所以由此我们就可以得知,当我想要实现点击不同的item的时候,跳转到的内容展示的数据也不同,就必须对position的值进行传递,在接收方接收到值的时候再加以判断就可实现不同数据的展示啦

简单的传值:

public void onBindViewHolder(@NonNull MyViewHolder holder, @SuppressLint("RecyclerView") int position) {

            holder.imageView13.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    int maxPosition = chatList2.size() - 1;
                    if (position >= 0 && position <= maxPosition) {
                        openHuoDongBaoMingActivity(v.getContext(), position);
                    }
                }
            });

        }
        private void openHuoDongBaoMingActivity(Context context, int position) {
            Intent intent = new Intent(context, WebViewActivity.class);
            intent.putExtra("position", position);
            context.startActivity(intent);
        }

以上代码中intent.putExtra("position", position);将position的值同步传到了需要打开的activity,也就是WebViewActivity,key:position ,  value:position。所以在WebViewActivity中我们也要接收到这个值就必须知道key的值position

Intent intent = getIntent();
        int position = 0;
        if (intent != null) {
            position = intent.getIntExtra("position", 0);
        }

这里的getIntExtra("position", 0);第一个参数就是之前传值时候的key键,(key的名字可以随便取,但是要确保发送数据和接收数据端的key值一样!!!);第二个参数就是在报错的时候,默认赋值一个0.

完成以上传值以及接收值操作就可以,利用传来的position再加以判断就能实现平常我们刷博客的样子啦(以下我已webview举例)

当position不同的时候,str取到的数组里面的地址也会不同,则webview控件加载的内容也会不同啦!效果如下(以下示例内容均为网络请求本人自制的内容,请加以区分!!!)

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Android 使用 RecyclerView 组成表格,可以采用以下步骤: 1. 创建一个 RecyclerView 对象,并设置其布局管理器为 GridLayoutManager,以实现表格布局。 ``` RecyclerView recyclerView = findViewById(R.id.recycler_view); RecyclerView.LayoutManager layoutManager = new GridLayoutManager(this, numColumns); recyclerView.setLayoutManager(layoutManager); ``` 其,numColumns 表示表格的列数。 2. 创建一个 RecyclerView.Adapter 对象,并实现其 onCreateViewHolder 和 onBindViewHolder 方法,在这两个方法实现表格单元格的绘制。 ``` public class MyAdapter extends RecyclerView.Adapter<MyViewHolder> { @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false); MyViewHolder holder = new MyViewHolder(view); return holder; } @Override public void onBindViewHolder(MyViewHolder holder, int position) { // 在这里设置单元格的内容和样式 } } ``` 3. 创建一个 RecyclerView.ViewHolder 对象,并在其构造函数初始化单元格的视图组件。 ``` public class MyViewHolder extends RecyclerView.ViewHolder { public TextView textView; public MyViewHolder(View itemView) { super(itemView); textView = itemView.findViewById(R.id.text_view); } } ``` 4. 在布局文件定义单元格的布局和样式,例如: ``` <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/text_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="16sp" android:padding="8dp" /> </LinearLayout> ``` 通过以上步骤,就可以使用 RecyclerView 组成表格并绘制单元格了。具体细节需要根据实际情况进行调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值