一、作业目标
根据作业1,将recyclerView的每个item增加点击功能,点击后跳转到一个新的view展示信息。
二、技术说明
要实现作业目标,需要用到以下技术:
- setOnClickListener:用于监听RecyclerView的每个item的点击事件;
- intent:用于在点击item后跳转到新的View展示信息;
- view:用于展示点击的item所对应的信息。
三、关键代码解析
1.为每个RecyclerView的item布局添加点击事件监听器,在onBindViewHolder函数中为itemView设置监听器,代码如下:
public void onBindViewHolder(@NonNull Myholder holder, @SuppressLint("RecyclerView") int position) {
String str=list1.get(position);
holder.textView1.setText(str);
holder.textView1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//处理点击事件
}
});
}
2.在监听器中处理点击事件,获取当前点击的item的数据,然后跳转到新的Activity并将数据传递过去,代码如下:
holder.textView1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//处理点击事件
Intent intent=new Intent(context1,itemActivity.class);
intent.putExtra("data",list1.get(position));
context1.startActivity(intent);
}
});
3.在新的Activity中接收传递过来的数据并展示,代码如下:
public class itemActivity extends AppCompatActivity {
TextView textView;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_item);
textView=findViewById(R.id.textView11);
Intent intent=getIntent();
String str2=intent.getExtras().getString("data");
textView.setText(str2);
button=findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
}
}
四、运行结果截图
运行结果
五、小结
一开始我只实现了跳转功能,并没有考虑每个item跳转后显示不同的内容。在实现后一功能时,出现了内容实现不对应的问题,最后发现是intent传递错误。此次作业较为简单。