如何实现Android RecyclerView不同item点击跳转对应Activity的逻辑?
解决方案
你只需修改MatAdapter类onBindViewHolder方法中的点击事件逻辑,根据条目标题判断跳转对应的Activity即可,修改代码如下:
修改后的点击事件代码
holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String matName = model.getMatName().trim(); Intent jumpIntent; // 根据条目名称匹配对应跳转页面 if (matName.equalsIgnoreCase("video lecture")) { jumpIntent = new Intent(context, VideoLectureActivity.class); } else if (matName.equalsIgnoreCase("Detail Notes")) { jumpIntent = new Intent(context, DetailNotesActivity.class); } else { // 其余条目保留原有跳转逻辑,新增条目可在此补充判断分支 jumpIntent = new Intent(context, Chapters.class); } // 传递所需参数 jumpIntent.putExtra("matId", model.getMatId()); context.startActivity(jumpIntent); } });
注意事项
- 跳转前需保证
VideoLectureActivity、DetailNotesActivity已经在AndroidManifest.xml中完成注册,否则会触发Activity找不到的异常 - 若后续新增更多类型的条目,只需新增对应
else if分支配置跳转目标即可 - 若想要更稳定的匹配逻辑,可在
MatModel类中新增type字段,在Firestore中为不同类型的条目设置对应type值,跳转时判断type值即可,无需匹配字符串,容错率更高
内容的提问来源于stack exchange,提问作者Ravi Shankar
相关产品推荐
相关产品推荐

