Android Studio在Fragment中添加Recycleview

Android Studio在Fragment中添加Recycleview

当我们在Android Studio中搭建好一个类似于微信界面的四个Fragment后,我们开始尝试先在其中的一个Fragment下新建一个Recycleview。下图是新建RecycleView之前已经搭建好的界面:
在这里插入图片描述
我们现在选择最左边的“新闻”Fragment,在这个片段下新建一个RecycleView:

1.我们先在这个Fragment的tab_01中新建一个RecycleView,并且更改一些参数:

在这里插入图片描述

2.在layout底下新建一个item.xml,新建一个textView:

在这里插入图片描述

3.我门需要在已有的第一个Fragment类中写入以下代码:

我们先初始化定义一些变量recyclerView,list,context, myadapter(一个适配器)

private RecyclerView recyclerView;
private List<String> list;
private Context context;
private  myadapter myadapter;

然后我们开始在onCreateView()函数底下写入适配器需要的一些参数和数据:

    View view=inflater.inflate(R.layout.tab_01,container,false);
    context=view.getContext();
    recyclerView=view.findViewById(R.id.recyclerview);
    list=new ArrayList<String>();
    initData();
    LinearLayoutManager manager=new LinearLayoutManager(context);
    manager.setOrientation(LinearLayoutManager.VERTICAL);

    myadapter = new myadapter(list,context);

    recyclerView.setAdapter(myadapter);
    recyclerView.setLayoutManager(manager);
    recyclerView.addItemDecoration(new DividerItemDecoration(context,LinearLayoutManager.VERTICAL));
      return view;

首先我们需要在layout中定位已经创建的tab_01,recyclerview,并定义一个list用来存放我们需要输出的文字,initData()是初始化数据的函数。接下来的 manager.setOrientation(LinearLayoutManager.VERTICAL)是定义RecycleView的方式为垂直形态。然后初始化myadapter适配器,并在底下填入参数。
接下来我们开始写initData()来定义需要输出的文字:

	private void initData(){
    list.add("HOUSTON ROCKETS");
    list.add("LOSANGEL LAKERS");
    list.add("DALAS MAV");
    list.add("LOSANGEL CLIPPERS");
    list.add("DENVER NUGGETS");
    list.add("PORTLAND BLIZZARDS");
    list.add("GOLDEN STATE WORRIERS");
    list.add("CHICAGO BULLS");
    list.add("BROOKLIN NETS ");
    list.add("TORONTO RAPATORS");
}

4.新建一个名叫myadapter的类来初始化定义适配器:

在这个类中,我们需要实现几个方法:

public myadapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view= LayoutInflater.from(context).inflate(R.layout.item,parent,false);
    MyViewHolder myViewHolder =new MyViewHolder(view);
    return myViewHolder;
}

@Override
public void onBindViewHolder(@NonNull myadapter.MyViewHolder holder, int position) {
    holder.textView.setText(list.get(position));
}

@Override
public int getItemCount() {
    return list.size();
}

当然在实现这几个方法之前,我们需要对其中的一些参数进行定义private

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

然后我们会发现MyViewHolder这个地方标红,我们只需要再重写这个方法就行了(标红的时候会有提示,根据提示的信息进行修改)

public class MyViewHolder extends RecyclerView.ViewHolder {
    TextView textView;
    public MyViewHolder(@NonNull View itemView) {
        super(itemView);
        textView=itemView.findViewById(R.id.textView1);
    }
}

写完之后就可以运行代码了:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
源代码可以参考以下网站:
点击这里

  • 6
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值