<androidx.recyclerview.widget.RecyclerView android:id="@+id/inventoryList" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="5dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" />可以点击RecyclerView并跳转页面展示RecyclerView内的信息
时间: 2024-03-02 08:53:06 浏览: 163
您想要实现点击 RecyclerView 后跳转到一个新页面展示 RecyclerView 内的信息,这可以通过以下步骤实现:
1. 为 RecyclerView 中的每个 item 添加一个 onClickListener,监听点击事件。
2. 在 onClickListener 中获取被点击 item 的数据。
3. 将数据传递给新页面,用于展示。
4. 启动新页面,展示数据。
具体实现步骤如下:
1. 在 RecyclerView 的 Adapter 中为 item 添加 onClickListener:
```
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
private List<MyData> mDataList;
private Context mContext;
public MyAdapter(List<MyData> dataList, Context context) {
mDataList = dataList;
mContext = context;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
MyData data = mDataList.get(position);
holder.bindData(data);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// item 被点击了
Intent intent = new Intent(mContext, DetailActivity.class);
intent.putExtra("data", data);
mContext.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return mDataList.size();
}
static class MyViewHolder extends RecyclerView.ViewHolder {
private TextView mTextView;
public MyViewHolder(View itemView) {
super(itemView);
mTextView = itemView.findViewById(R.id.text_view);
}
public void bindData(MyData data) {
mTextView.setText(data.getText());
}
}
}
```
2. 在新页面中获取传递的数据,并展示:
```
public class DetailActivity extends AppCompatActivity {
private TextView mTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
mTextView = findViewById(R.id.text_view);
MyData data = getIntent().getParcelableExtra("data");
mTextView.setText(data.getText());
}
}
```
需要注意的是,MyData 类需要实现 Parcelable 接口,以便可以将数据传递给新页面。
阅读全文