//创建一个recyclerView
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".recyclerView.GirdRecyclerViewActivity">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/girdRecyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</RelativeLayout>
public class GirdRecyclerViewActivity extends AppCompatActivity {
private RecyclerView recyclerView;
private List<String> data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gird_recycler_view);
recyclerView = findViewById(R.id.girdRecyclerView);
data = new ArrayList<>();
for (int i = 0; i < 40; i++) {
data.add("哈哈"+i);
}
//设置网格布局管理器,每行显示3个元素
recyclerView.setLayoutManager(new GridLayoutManager(this,3));
recyclerView.setAdapter(new GridAdapter(data,pos->{
Toast.makeText(this,"click"+pos,Toast.LENGTH_SHORT).show();
}));
}
}
public class GridAdapter extends RecyclerView.Adapter<GridAdapter.GridViewHolder> {
private List<String> data;
private OnItemClickLister onItemClickLister;
public GridAdapter(List<String> data, OnItemClickLister onItemClickLister) {
this.data = data;
this.onItemClickLister = onItemClickLister;
}
@NonNull
@Override
public GridViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.gird_item,parent,false);
return new GridViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull GridViewHolder holder, int position) {
holder.textView.setText(data.get(position));
holder.textView.setOnClickListener(v -> {
onItemClickLister.onClick(position);
});
}
@Override
public int getItemCount() {
return data.size();
}
class GridViewHolder extends RecyclerView.ViewHolder {
TextView textView;
public GridViewHolder(@NonNull View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.gird_textview);
}
}
interface OnItemClickLister{
void onClick(int pos);
}
}
只是变了个布局而已,具体可以看我第一篇recyclerview的学习笔记