如何从特定的 CardView 点击获取数据并在另一个 activity 中显示数据

How to get data from a particular CardView click and shown data in another activity

当客户单击 cardview 但我的 activity 中未显示数据时,我必须获取详细信息。

这是我的代码:

public void onBindViewHolder(MenuItemViewHolder holder, int position) {

    final int _index = position;

    holder.iBookingRef.setText(itemList.get(position).getBookingID());
    holder.iClientName.setText(itemList.get(position).getDelegeteName());
    holder.iHotelName.setText(itemList.get(position).getHotelName());

    holder.layout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
          Intent intent = new Intent(context, ArrivalsActivity.class);

          intent.putExtra("BookingID", itemList.get(_index).getBookingID());
          intent.putExtra("DelegeteName", itemList.get(_index).getDelegeteName());
          intent.putExtra("HotelName", itemList.get(_index).getHotelName());

          context.startActivity(intent);
        }
    });
}

在您的适配器中创建一个包含方法的接口。在实现您的适配器时,这些方法将在您的 activity 中实现,您可以执行任何您想要的操作。

 public class Adapter extends RecyclerView.Adapter<MyRecycleViewHolder> {

public interface Callbacks {
    public void onButtonClicked(String titleKey);
}

private Callbacks mCallbacks;

public Adapter() {

}

@Override
public MyRecycleViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
    View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.layout_details, null);
    return new MyRecycleViewHolder(v);
}

@Override
public void onBindViewHolder(final MyRecycleViewHolder holder, final int i) {

    holder.ExpandButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (mCallbacks != null) {
                mCallbacks.onButtonClicked(holder.ProbTitle.getText().toString());
            }
        }
    });

}


@Override
public int getItemCount() {
    return;
}

public void setCallbacks(Callbacks callbacks) {
    this.mCallbacks = callbacks;
}

}

您可以尝试在 onItemClick() 上执行此操作

Intent i = new Intent(view.getContext(), DetailsActivity.class);
i.putExtra("title", yourTitle);
i.putExtra("description", yourDescription);
view.getContext().startActivity(i);

在您的 DetailActivity 中创建时,执行此操作

String title = getIntent().getStringExtra("title");
String description = getIntent().getStringExtra("description");

这样您就可以将标题和描述传递给 DetailActivity