package com.itheima.changethemedemo; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.Toast; public class MainActivity extends FragmentActivity { private RecyclerView mRvMain; private LinearLayoutManager mLayoutManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initView(); initData(); initEVent(); } private void initView() { setContentView(R.layout.activity_main); mRvMain = (RecyclerView) findViewById(R.id.rv_mian); } private void initData() { // mLayoutManager = new LinearLayoutManager(this); GridLayoutManager gridLayoutManager = new GridLayoutManager(this,4); mRvMain.setLayoutManager(gridLayoutManager); // mRvMain.setHasFixedSize(true); //是指item 高度固定 MyAdapter mAdapter = new MyAdapter(); mAdapter.setOnItemClickListener(new MyAdapter.OnRecycleViewClickListener() { @Override public void onItemClick(View view, int model) { Toast.makeText(MainActivity.this,"what a fuck ",Toast.LENGTH_SHORT).show(); } }); mRvMain.setAdapter(mAdapter); } private void initEVent() { } public static class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { int[] imgDatas = {R.mipmap.g1, R.mipmap.g2, R.mipmap.g3,R.mipmap.g4,R.mipmap.g5,R.mipmap.g6, R.mipmap.g7,R.mipmap.g8,R.mipmap.g9,R.mipmap.g10, R.mipmap.g11,R.mipmap.g12,R.mipmap.g13}; /*****************************************************/ //定义接口回调 ,设置条目的点击事件 public interface OnRecycleViewClickListener{ void onItemClick(View view,int model); } OnRecycleViewClickListener mRecycleViewClickListener = null; public void setOnItemClickListener (OnRecycleViewClickListener listener){ this.mRecycleViewClickListener = listener; } /**************************************************************/ /** * 创建view 被layoutmanager 调用 * * @param parent * @param viewType * @return */ @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false); ViewHolder holder = new ViewHolder(view); return holder; } /** * 将数据和界面绑定 * * @param holder * @param position */ @Override public void onBindViewHolder(final ViewHolder holder, int position) { if(mRecycleViewClickListener!=null){ holder.mImageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int pos = holder.getLayoutPosition(); mRecycleViewClickListener.onItemClick(holder.mImageView,pos); } }); } holder.mImageView.setTag(imgDatas[position]); holder.mImageView.setImageResource(imgDatas[position]); } @Override public int getItemCount() { return imgDatas.length; } public class ViewHolder extends RecyclerView.ViewHolder { public ImageView mImageView; public ViewHolder(View itemView) { super(itemView); mImageView = (ImageView) itemView.findViewById(R.id.iv_item); } } } }
RecyclerView设置 item点击事件
最新推荐文章于 2023-11-11 15:11:55 发布