在Mainactivity中的设置,我在这添加了一个简单的吐司
上边是适配器中的添加
上方onBindViewHolder中添加的监听
下边是我的全部代码
//MainActivity
public class MainActivity extends AppCompatActivity { private RecyclerView rv1; private LinearLayoutManager layoutManager; private Myadapter myadapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { rv1 = (RecyclerView) findViewById(R.id.rv1); //创建线性布局 layoutManager = new LinearLayoutManager(this); //水平方向 layoutManager.setOrientation(OrientationHelper.HORIZONTAL); rv1.setLayoutManager(layoutManager); getFood(); } public void getFood() { String url="http://www.qubaobei.com/"; Retrofit.Builder builder=new Retrofit.Builder(); builder.baseUrl(url) .addConverterFactory(GsonConverterFactory.create()) .build() .create(NetService.class) .getdata().enqueue(new Callback<Info_>() { @Override public void onResponse(Call<Info_> call, Response<Info_> response) { Info_ body = response.body(); final List<Info_.DataBean> data = body.getData(); Log.e("lcy", "onResponse: "+data ); //设置布局管理器 myadapter=new Myadapter(data,MainActivity.this); rv1.setAdapter(myadapter); //设置条目点击事件 myadapter.setOnItemClickListener(new Myadapter.OnItemClickListener() { @Override public void onItemClick(View view, int position) { Toast.makeText(MainActivity.this, ""+data.get(position).getTitle(), Toast.LENGTH_SHORT).show(); } }); } @Override public void onFailure(Call<Info_> call, Throwable t) { } }); } }
//适配器
public class Myadapter extends RecyclerView.Adapter<Myadapter.MyViewHolder>{ private List<Info_.DataBean> data; private LayoutInflater inflater; private Context context; //属性 private OnItemClickListener mOnItemClickListener; //构造 public void setOnItemClickListener(OnItemClickListener listener) { this.mOnItemClickListener = listener; } //define interface 点击接口 public interface OnItemClickListener { void onItemClick(View view , int position); } public Myadapter(List<Info_.DataBean> data, Context context) { this.data = data; this.context = context; inflater=LayoutInflater.from(context); } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view=inflater.from(parent.getContext()).inflate(R.layout.item,parent,false); MyViewHolder myViewHolder=new MyViewHolder(view); return myViewHolder; } @Override public void onBindViewHolder(final MyViewHolder holder, int position) { //加载图片 Glide.with(context).load(data.get(position).getPic()) .apply(RequestOptions.bitmapTransform(new CircleCrop())) .into(holder.iv1); holder.tv1.setText(data.get(position).getTitle()); holder.tv2.setText(data.get(position).getCollect_num()); holder.tv3.setText(data.get(position).getNum()+""); if(mOnItemClickListener != null){ //为ItemView设置监听器 holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int position = holder.getLayoutPosition(); // 1 mOnItemClickListener.onItemClick(holder.itemView,position); // 2 } }); } } @Override public int getItemCount() { return data.size(); } public static class MyViewHolder extends RecyclerView.ViewHolder{ private ImageView iv1; private TextView tv1; private TextView tv2; private TextView tv3; public MyViewHolder(View itemView) { super(itemView); iv1=itemView.findViewById(R.id.iv1); tv1=itemView.findViewById(R.id.tv1); tv2=itemView.findViewById(R.id.tv2); tv3=itemView.findViewById(R.id.tv3); } } }