1、在xml文件中添加RecyclerView组件
使用Palette 拖拽
或在布局中输入,选择
2、给RecyclerView设置id
3.创建一个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="match_parent" android:orientation="vertical"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="33dp" android:layout_marginLeft="10dp" android:text="标题" android:textSize="20dp"/> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="18dp" android:layout_marginLeft="10dp" android:text="内容" android:textSize="20dp"/> </LinearLayout>
4.创建适配器Adapter
①在onCreate里添加以下代码
//捆绑.xml文件的代码(conn_fragment.xml) binding = ConnFragmentBinding.inflate(inflater, container, false); //声明activity与MainActivity一样 activity = (MainActivity) getActivity(); //声明mRecyclerView从哪获得 mRecyclerView = binding.recycler; //创建新的适配器 mMyAdapter = new MyAdapter(); //设置mRecyclerView的适配器 mRecyclerView.setAdapter(mMyAdapter); //创建新的布局管理器 LinearLayoutManager layoutManager = new LinearLayoutManager(activity); //设置mRecyclerView的布局管理器 mRecyclerView.setLayoutManager(layoutManager);
②创建一个MyAdapter类,继承于RecyclerView.Adapter<MyViewHoder>
class MyAdapter extends RecyclerView.Adapter<MyViewHoder> {
③右键生成,覆写三个方法onCreateViewHolder、onBindViewHolder、getItemCount
@NonNull @Override public MyViewHoder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = View.inflate(getActivity(), R.layout.item_list, null); MyViewHoder myViewHoder = new MyViewHoder(view); return myViewHoder; } @Override public void onBindViewHolder(@NonNull MyViewHoder holder, int position) { News news = mNewsList.get(position); // holder.mTitleTv.setText(news.title); // holder.mTitleContent.setText(news.content); holder.mTitleTv.setText("abc"+"de"); holder.mTitleContent.setText("123"+"45"); } @Override public int getItemCount() { // return mNewsList.size(); return 2; }
注:return 2;中的值不能超过我们recyclerview中返回的值。
onCreateViewHolder:创建ViewHolder,返回myViewHolder
onBindViewHolder:根据ViewHolder的布局和数据源包含的内容显示数据的内容
getItemCount:显示数据的数量
5.ViewHoder
①创建MyViewHoder类,继承于RecyclerView.ViewHolder
class MyViewHoder extends RecyclerView.ViewHolder {
②定义两个TextView类型的变量
TextView mTitleTv; TextView mTitleContent;
③创建MyViewHoder的构造方法,初始化变量
public MyViewHoder(@NonNull View itemView) { super(itemView); mTitleTv = itemView.findViewById(R.id.textView); mTitleContent = itemView.findViewById(R.id.textView2); }
最后运行得到列表结果