如何从特定的 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
当客户单击 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