Android学习第二天
-
recyclerView
的学习 (和iOS
的UITableView
控制作用类似,都是展示很多数据的列表) -
引入
recyclerView
类-
在
build.gradle
文件中引入该类。api 'com.android.support:recyclerview-v7:28.0.0'
-
-
activity的布局文件中
activity_main
<?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" > <android.support.v7.widget.RecyclerView android:id="@+id/my_recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="vertical"> </android.support.v7.widget.RecyclerView> </LinearLayout>
-
在activity中
/* * 初始化数据 * */ private void initData(){ myAdapter = new MyAdapter(getData()); } /* * 初始化界面 * */ private void initView(){ recyclerView = (RecyclerView) findViewById(R.id.my_recycler_view); LinearLayoutManager mlayouotManager = new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false); recyclerView.setLayoutManager(mlayouotManager); recyclerView.setAdapter(myAdapter); } /* * * 获取数据 * */ private ArrayList<String> getData(){ ArrayList<String> data = new ArrayList<>(); String temp = "item"; for (int i = 0; i < 20; i++){ data.add(i + temp); } return data; }
-
声明一个适配器
-
新建一个适配器类,叫
MyAdapter.java
package com.example.songhongkang.recyclerview; import android.support.annotation.NonNull; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import java.util.ArrayList; public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { private ArrayList<String> mData; public MyAdapter(ArrayList<String> data){ this.mData = data; } @NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { // 实例化展示的view View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.view_rv_item, viewGroup, false); // 实例化viewholder ViewHolder viewHolder = new ViewHolder(v); return viewHolder; } @Override public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) { viewHolder.et.setText(mData.get(i)); } @Override public int getItemCount() { return mData == null ? 0 : mData.size(); } public static class ViewHolder extends RecyclerView.ViewHolder { TextView et; public ViewHolder(@NonNull View itemView) { super(itemView); et = (TextView)itemView.findViewById(R.id.item_tv); } } }
-

-
总结几个知识点
-
ArrayList 类似于iOS的可变数组,简单用法如下
ArrayList<String> data = new ArrayList<>(); String temp = "item"; for (int i = 0; i < 20; i++){ data.add(i + temp); }
-
获取ArrayList的长度
data.size()
-
-
把xml文件转换成View
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.view_rv_item, viewGroup, false);
更多recyclerView的用法 参考博客
网友评论