移动开发作业2:实现recyclerView页面的每个item点击跳转

作业目标:

在作业1的基础上,为RecyclerView的每个item添加点击功能。点击后,跳转到一个新的View以展示详细信息。

开发技术:

ArrayList<Map<String, Object>>, HashMap, RecyclerView, Intent, startActivity()

思路分析:

  1. 设计RecyclerView页面。

  2. 创建一个新的Activity,用于实现点击跳转。

设计过程:

一、设计RecyclerView页面

  1. 修改作业1中的item.xml,使其类似微信消息界面。

  2. 编写适配器MyAdapter,配置RecyclerView的内容展示和点击跳转功能。

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
    // ... (其他代码)

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
        // ... (其他代码)

        holder.itemLayout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(context, MessageDetailActivity.class);
                intent.putExtra("消息内容", data1.get(position).get("消息内容").toString());
                context.startActivity(intent);
            }
        });
    }

    // ... (其他代码)

    public class MyViewHolder extends RecyclerView.ViewHolder {
        LinearLayout itemLayout;
        TextView name;
        TextView content;
        ImageView avatar;

        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            itemLayout = itemView.findViewById(R.id.M_layout);
            name = itemView.findViewById(R.id.textViewM1);
            content = itemView.findViewById(R.id.textViewM2);
            avatar = itemView.findViewById(R.id.imageViewM);
        }
    }
}

  1. 在消息界面的Fragment中(作业1中的fragment1.java)写入并管理要展示的消息内容。
public class Fragment1 extends Fragment {
    // ... (其他代码)

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // ... (其他代码)

        myAdapter = new MyAdapter(view.getContext(), data);
        LinearLayoutManager manager = new LinearLayoutManager(view.getContext());
        manager.setOrientation(LinearLayoutManager.VERTICAL);
        recyclerView.setLayoutManager(manager);
        recyclerView.setAdapter(myAdapter);
        return view;
    }
}

二、新建Activity实现item的点击跳转

  1. 新建一个Activity用于展示跳转后的内容。

  2. 设计该Activity对应的activity_message_detail.xml文件,实现期望的页面布局。

  3. 实现页面跳转和参数传递。

为了方便,只创建了一个Activity。但要实现点击不同item跳转到对应内容,通过Intent传递和接收参数。

在MyAdapter中写一个startActivity()函数,实现点击item跳转到详细内容页面:

holder.itemLayout.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent intent = new Intent(context1, MessageDetailActivity.class);
        intent.putExtra("消息内容", data1.get(position).get("消息内容").toString());
        context1.startActivity(intent);
    }
});

在MessageDetailActivity中使用getStringExtra()接收intent传来的内容:

Intent intent = getIntent();
String detail = intent.getStringExtra("消息内容");
textView.setText(detail);

MessageDetailActivity通过返回按钮button的监听使用finish()函数退出当前页面,回到初始的RecyclerView页面:

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        finish();
    }
});

三、效果展示

四、总结

这次实验分两次完成。第一次初步实现了跳转功能,但所有item跳转后内容相同。第二次在此基础上实现了参数传递,使得点击不同item跳转到不同消息内容。页面跳转不难,但参数传递容易因为粗心导致错误,需要注意putExtra()和getStringExtra()的对应关系,以及RecyclerView页面的展示内容要与数据对应。

五、代码仓库地址

安卓第二次作业: 第二次作业补交

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值