AS之仿微信APP界面设计(二)

目录

一、功能需求

二、功能实现

三、效果展示

四、总结

五、源码


一、功能需求

1、依托作业一,将recyclerView的每个item增加点击功能,点击后跳转到一个新的view展示信息。实现点击联系人跳转到聊天界面。

二、功能实现

1、在适配器(Adapter)中为RecyclerView的每个item设置点击事件监听。

代码如下:

@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, @SuppressLint("RecyclerView") int position) {
    Glide.with(context)
            .load(data.get(position).get("key1").toString())
            .into(holder.imageView1);
    holder.textView5.setText(data.get(position).get("key2").toString());
    holder.textView6.setText(data.get(position).get("key3").toString());
    holder.textView7.setText(data.get(position).get("key4").toString());
    holder.detail_text.setText(data.get(position).get("key4").toString());
    holder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // 处理项的点击事件,跳转到新的页面
            // 示例代码:
            Map<String, Object> itemData = data.get(position);
            String imgUrl = (String) itemData.get("key1");
            String name = (String) itemData.get("key2");
            String time = (String) itemData.get("key3");
            String msg = (String) itemData.get("key4");

            // 创建Intent并传递数据
            Intent intent = new Intent(context, DetailActivity.class);
            intent.putExtra("imgUrl", imgUrl);
            intent.putExtra("name", name);
            intent.putExtra("time", time);
            intent.putExtra("msg", msg);

            // 启动新的Activity
            context.startActivity(intent);
        }
    });
    //holder.Clicked.setOnClickListener(onClickListener);


}

2、创建新的View展示信息的Activity(比如DetailActivity),在该Activity中获取传递过来的数据,并将这些数据显示在对应的视图组件上。

代码如下:

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;

public class DetailActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_detail);
        // 获取传递过来的数据
        Intent intent = getIntent();

        String imgUrl = intent.getStringExtra("imgUrl");
        String name = intent.getStringExtra("name");
        String timeString = intent.getStringExtra("time");
        String msg = intent.getStringExtra("msg");

        // 找到对应的视图组件
        ImageView photo = findViewById(R.id.detail_img);
        TextView cctName = findViewById(R.id.textView6);
        TextView time = findViewById(R.id.detail_time);
        TextView cctMsg = findViewById(R.id.detail_content);

        // 在相应的视图组件中显示数据
        Glide.with(this).load(imgUrl).into(photo);
        cctName.setText(name);
        time.setText(timeString);
        cctMsg.setText(msg);
    }


    }

三、效果展示

移动鼠标实现上下滑动

点击头像,实现点击联系人跳转到聊天界面。

四、总结

   通过本次在Android RecyclerView中添加Item点击事件,点击后跳转到一个新的view展示信息的实现,我更加的了解了RecyclerView,在这个实验过程中,我学到了两种 在Android RecyclerView中添加Item点击事件的方法,第一种是直接在Adapter中的onCreateViewHolder方法中实现点击事件,第二种是自定义接口,在activity或者fragment中调用。自定义一个接口OnItemClickListener在自定义的ViewHolder中实现onClickListenr接口,先声明一个自定义接口的变量,在自定义的ViewHolder的构造函数中添加一个参数,自定义的这个接口,并设置itemview的点击事件,在点击事件中转移到自定义的接口上,传到外面的调用者。在自定义的Adapter中定义一个方法public void setOnItemClickListener(OnItemClickListener listener) {this.mClickListener = listener;}并暴露给外面的调用者。然后在MainActivity中使用。

五、源码

详细代码已上传至github:BKINGING/我的微信 (github.com)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值