一、作业目标
依托前一个项目AS移动开发--类微信界面的实现,将recyclerView的每个item增加点击功能,点击后跳转到一个新的view展示信息。
二、开发技术
开发工具:Android studio
版本:API 32 Android 12
三、开发思路
首先,根据上次的fx_fragement.java中的recycleview设计要跳转到的页面message.xml,然后创建新的MainActivity2.java用于控制跳转页面后的信息,然后在adapter_contract中添加点击事件,并部署相关信息,最后对MainActivity中做出相应的修改使得能够运行。
四、设计过程
1修改adapt_contract.java文件
设置点击事件监听器(OnClickListener),为先前的控件添加了一个点击事件监听器。当点击某个项时会触发onClick方法。在点击事件中,首先检查是否设置了一个点击事件的监听器 mListener,如果存在,就调用监听器的OnItemclick方法,并传递当前项的位置信息 。
代码:
public void onBindViewHolder(@NonNull VerticalViewHolder holder, @SuppressLint("RecyclerView")int position) {
holder.teamNum.setText(position + 1 + "");
holder.teamContent.setText(myList.get(position));
holder.teamContent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mListener!=null) {
mListener.onItemClick(position);}
}
});
}
2创建MainActivity1接收跳转界面
用一个新的activity来显示跳转界面,对应xml文件为message.xml。添加一个点击事件监听器,当用户点击对应控件(imageview5)时,会触发监听器中的操作。在这种情况下,会创建一个新的intent对象,将数据附加到该 Intent 中,并调用setResult方法来设置结果码和返回的 Intent。最后,调用finish()方法来关闭当前 Activity,返回到上一个 Activity,并将结果传递给上一个 Activity。
关键代码:
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.putExtra("result","888");
setResult(666,intent);
finish();
}
});
3修改fx_fragment文件
实例化adapt_contract适配器,并传入上下文对象和数据列表。将数据与 RecyclerView 中的项绑定起来。
通过findViewById 获取在布局中定义的 RecyclerView,将其赋值给 rcv_1变量。设置RecylerView适配器 通过 rcv_1.setAdapter(adapter)将创建的适配器与 RecyclerView 关联,以便在 RecyclerView 中显示数据。
设置RecylerView使用adapter.setOnItemClickListener方法设置 RecyclerView 项的点击事件监听器。在点击事件中,处理点击的逻辑,例如获取点击项的数据并创建一个新的 Intent。随后,通过这个 Intent 启动新活动,并将点击项的数据作为附加数据传递给新活动。
主要代码:
View view = inflater.inflate(R.layout.fragment3, container, false);
context=view.getContext();
adapter_contact adapter = new adapter_contact(context,myList);
RecyclerView rcv_1 = view.findViewById(R.id.rcv3);
adapter.setOnItemClickListener(new adapter_contact.OnItemClickListener() {
@Override
public void onItemClick(int position) {
// 处理点击事件
String text = myList.get(position);
Intent intent = new Intent(getContext(), MainActivity1.class);
intent.putExtra("data", text);
startActivity(intent);
}
});
4设计对应xml文件(message.xml)
样例如下:
通过以上步骤,我们成功地在 Android Studio 移动开发项目中实现了 RecyclerView 的点击功能,并实现了点击后跳转到一个新的 View 展示详细信息。
五、结果展示
六、实验小结
在Android Studio中进行了RecycleView点击跳转功能的简单实验。通过使用RecyclerView和适配器,在Fragment中实现了列表的展示,并为每个列表项添加了点击事件。点击某一项时,成功地获取了相应的数据,并通过Intent传递到目标Activity。这实验强调了RecycleView的灵活性和可扩展性,使得在移动应用中实现列表和详细信息跳转变得简单而高效。同时,深入理解了Android中通过Intent在不同组件之间传递数据的方法。在实验中也遇到了一些问题,如在未初始化函数时就对其使用,导致项目不能运行,经过排查后更正,才能正常运行。
七、实验代码
https://github.com/pfsongzw/learnershttps://github.com/pfsongzw/learners