您能把这段代码完善吗,如果点击列表项内容,就会跳到新的activity
时间: 2024-03-03 08:50:58 浏览: 17
当用户点击 RecyclerView 中的某一项时,可以通过 ViewHolderListener 接口中的 onItemClicked() 方法来处理该事件。在该方法中,您可以获取被点击的项的位置 adapterPosition,然后使用 Intent 跳转到您想要跳转的 Activity 中。
下面是修改后的完整代码:
```java
package com.blog;
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.ArrayList;
public class SimpleAdapter extends RecyclerView.Adapter<SimpleAdapter.ViewHolder> {
private final ArrayList<String> examples;
private final ViewHolderListener viewHolderListener;
private final Context context;
public SimpleAdapter(Context context, ArrayList<String> examples, ViewHolderListener viewHolderListener) {
this.context = context;
this.examples = examples;
this.viewHolderListener = viewHolderListener;
}
public void setViewHolderListener(ViewHolderListener viewHolderListener) {
}
public interface ViewHolderListener {
void onItemClicked(View view, int adapterPosition);
}
@NonNull
@Override
public SimpleAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.list_item_layout, parent, false);
return new SimpleAdapter.ViewHolder(view, viewHolderListener);
}
@Override
public void onBindViewHolder(@NonNull SimpleAdapter.ViewHolder holder, int position) {
holder.tvContent.setText(examples.get(position));
}
@Override
public int getItemCount() {
return examples.size();
}
static class ViewHolder extends RecyclerView.ViewHolder implements
View.OnClickListener {
private final TextView tvContent;
private final ViewHolderListener viewHolderListener;
ViewHolder(View itemView, ViewHolderListener viewHolderListener) {
super(itemView);
tvContent = itemView.findViewById(R.id.tv_content);
this.viewHolderListener = viewHolderListener;
itemView.findViewById(R.id.all_layout).setOnClickListener(this);
}
@Override
public void onClick(View view) {
if (null != viewHolderListener) {
viewHolderListener.onItemClicked(view, getAdapterPosition());
// 点击后跳转到新的 Activity
Intent intent = new Intent(view.getContext(), NewActivity.class);
view.getContext().startActivity(intent);
}
}
}
}
```
在 onItemClicked() 方法中,我们使用 Intent 跳转到了名为 NewActivity 的 Activity。请注意,这里的 context 参数需要在 SimpleAdapter 的构造函数中传入,以便在跳转时使用。