移动开发2:实现item点击的跳转功能

一.作业目标:

依托前面的设计,实现点击item能够显示出新的view

二.关键代码解析及技术说明:

1.创建一个新的activity:itemActiviy新建一个空的ItemActivity2和对应的activity_Item2.xml来实现新的界面布局

activity_item2设计如下:

activityi_item2对应的是点击item后显示的页面,接下来要设计ItemActivity2文件

public class ItemActivity2 extends AppCompatActivity {
    private TextView itemTextView;
    private Button backButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_item2);

        Intent intent = getIntent();
        String itemData = intent.getStringExtra("itemData");

        itemTextView = findViewById(R.id.itemTextView);
        itemTextView.setText(itemData);

        backButton = findViewById(R.id.button8);
        backButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
    }
}

在这段代码, super.onCreate(savedInstanceState) 执行父类的 onCreate 方法。

setContentView(R.layout.activity_item2) 方法将与 ItemActivity2 相关联的布局文件加载到当前的 Activity 中。

getIntent 方法获取传递过来的 Intent 对象,然后从 Intent 中提取名为 "itemData" 的额外数据

findViewById 方法:找到布局文件中的 TextView 控件,并使用 setText 方法将从 Intent 中获取的数据展示在该控件中

最后,使用 findViewById 方法找到布局文件中的返回按钮 button8,并为它设置一个点击事件监听器,当用户点击该按钮时,调用 finish() 方法关闭当前的 Activity

2.处理完ItemActivity和activity_item后,我们需要编写Myadapter中的代码,以实现点击跳转,接收传递过来的数据,在界面上展示这些数据,返回上一个界面等功能。

使用OnItemClickListener监听器,通过 list1 获取对应位置的数据,将数据设置到 ViewHolder 中的 textView 中。 textView 设置了一个点击事件监听器,当用户点击这个 TextView 时,会触发 onClick 方法onClick 方法内部,首先从列表 list1 中获取被点击项的数据 itemData,然后创建一个新的 Intent 对象,指定了当前的上下文 context1 和目标 Activity ItemActivity2。通过 intent.putExtra("itemData", itemData) 将获取到的数据放入 Intent 中,这样在启动目标 Activity 时可以携带这些数据。context1.startActivity(intent) 启动目标 Activity,将用户点击的数据传递给 ItemActivity2,并使用户跳转到 ItemActivity2 页面

完整代码如下:

package com.example.myapplication2;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.content.Intent;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import java.util.List;
import java.util.zip.Inflater;
public class Myadapter extends RecyclerView.Adapter<Myadapter.Myholder> {
    Context context1;
    List <String>list1;
    public Myadapter(Context context, List<String> list){
        context1=context;
        list1=list;
    }


    @NonNull
    @Override
    public Myholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view =LayoutInflater.from(context1).inflate(R.layout.item,parent,false);

        Myholder myholder=new Myholder(view);
        return myholder;
    }


    @Override
    public void onBindViewHolder(@NonNull Myholder holder, final int position) {
        holder.textView.setText(list1.get(position));
        holder.textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String itemData = list1.get(holder.getAdapterPosition());
                Intent intent = new Intent(context1, ItemActivity2.class);
                intent.putExtra("itemData", itemData);
                context1.startActivity(intent);
            }
        });
    }

    @Override
    public int getItemCount() {
        return list1.size();
    }
    protected class Myholder extends RecyclerView.ViewHolder {
        TextView textView;
        public Myholder(@NonNull View itemView) {


            super(itemView);
            textView=itemView.findViewById(R.id.textView1);
        }
    }
}

三.效果展示

四.总结
        在此次实验中,完成了简单的点击item实现recycleview跳转以及进入详细页面后返回的功能,但还没有完善联系人页面,图像以及聊天界面的设计还没有完成,离具体的聊天功能界面还差的多。

代码仓库:

AS_wecaht: 移动开发作业2:item跳转

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值