目录
一、实现目标:
在之前的基础上,对有recycleView的页面进行点击跳转设计。比如,某一tab页是新闻列表,则点击某一行能跳转到新闻详情页面;
二、实现思路:
先创建并注册好待调用的activity,然后在myadapter.java文件中对recyclerview的item创建监听。然后通过点击item的position跳转到相应的activity。
1.首先创建并在AndroidManifest里面注册activity:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mywork_wy">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.MyWorkwy">
<activity
android:name=".MainActivity3"
android:exported="true"
android:launchMode="singleInstance">
<intent-filter>
<action android:name="lyr.study.testActivity3" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity2"
android:exported="true"
android:launchMode="singleInstance">
<intent-filter>
<action android:name="lyr.study.testActivity2" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
2.对item设置监听,然后利用switch语句,通过点击返回的position来进入不同的activity:
Myadapter.java文件内容如下:
package com.example.mywork_wy;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.List;
public class Myadapter extends RecyclerView.Adapter<Myadapter.MyViewHolder> {
private View itemView;
private Context context;
private List<String> data;
public Myadapter(List<String> data, Context context) {
this.context = context;
this.data = data;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
itemView = LayoutInflater.from(context).inflate(R.layout.item, parent, false);
MyViewHolder myViewHolder = new MyViewHolder(itemView);
return myViewHolder;
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.textView1.setText(data.get(position));
itemView.setOnClickListener(view -> {
switch (position){
case 0:
Intent intent = new Intent("lyr.study.testActivity2");
view.getContext().startActivity(intent);
break;
case 1:
intent = new Intent("lyr.study.testActivity3");
view.getContext().startActivity(intent);
break;
default:
break;
}
});
}
@Override
public int getItemCount() {
return data.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
TextView textView1;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
textView1 = itemView.findViewById(R.id.textView1);
}
}
}
三、实现效果截图:
初始界面:
点击第一行数据后跳转到如下界面:
点击第二行数据跳转到如下界面:
代码仓库地址:点这里