在我们的日常生活中,现在基本上是一个属于刷剧刷视频的时代,不难发现,我们点击每一个不同的视频或文章,它跳转到的界面的内容也不一样
而这些东西在我们的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控件加载的内容也会不同啦!效果如下(以下示例内容均为网络请求本人自制的内容,请加以区分!!!)