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);
}
}
写完之后就可以运行代码了:
源代码可以参考以下网站:
点击这里