java - 我如何获取我点击的卡片 View 的信息并将其发送到下一个 Activity

标签 java android android-studio android-cardview

我正在制作一个应用程序,我使用 recyclerview 显示卡片 View 列表,并且我希望能够对用户单击的卡片 View 进行详细 Activity ,但我不知道如何将单击的项目发送到下一个 Activity 。

在这里您可以看到我的适配器:

/** * 由阿尔贝托于 2016 年 5 月 18 日创建。 */

public class EmpresasAdapter extends RecyclerView.Adapter<EmpresasAdapter.EmpresasViewHolder>
    implements ItemClickListener{
private final Context context;
private List<Empresas> items;

public EmpresasAdapter(Context context, List<Empresas> items) {
    this.context = context;
    this.items = items;
}

@Override
public int getItemCount() {
    return items.size();
}

@Override
public EmpresasViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
    View v = LayoutInflater.from(viewGroup.getContext())
            .inflate(R.layout.empresa_card, viewGroup, false);
    return new EmpresasViewHolder(v, this);
}

@Override
public void onBindViewHolder(EmpresasViewHolder viewHolder, int i) {
    // Item procesado actualmente
    Empresas currentItem = items.get(i);

    viewHolder.nombrep.setText(currentItem.getNombre());
    viewHolder.descripcionp.setText(currentItem.getDescripcionC());
    viewHolder.franquiciap.setText(currentItem.getModalidad()+" | "+currentItem.getFranquicia());
   // Cargar imagen
    Glide.with(context)
            .load(currentItem.getImagen())
            .into(viewHolder.imagenp);
}

@Override
public void onItemClick(View view, int position) {
    // Imagen a compartir entre transiciones
    View sharedImage = view.findViewById(R.id.imagenp);
    EmpresaDetalle.launch(
            (Activity) context, position, sharedImage);
}

/**
 * View holder para reciclar elementos
 */
public static class EmpresasViewHolder extends RecyclerView.ViewHolder
        implements View.OnClickListener {
    // Views para un curso
    public ImageView imagenp;
    public TextView nombrep;
    public TextView descripcionp;
    public TextView franquiciap;
    // Interfaz de comunicación
    public ItemClickListener listener;

    public EmpresasViewHolder(View v, ItemClickListener listener) {
        super(v);
        nombrep = (TextView) v.findViewById(R.id.nombrep);
        descripcionp = (TextView) v.findViewById(R.id.descripcionp);
        franquiciap = (TextView) v.findViewById(R.id.Franquiciap);


        imagenp = (ImageView) v.findViewById(R.id.imagenp);
        v.setOnClickListener(this);

        this.listener = listener;
    }

    @Override
    public void onClick(View v) {
        listener.onItemClick(v, getAdapterPosition());
    }


}

最佳答案

将这些项目作为额外的内容添加到启动DetailedActivty 的 Intent 中:

@Override
public void onItemClick(View view, int position) {
    // Imagen a compartir entre transiciones
    View sharedImage = view.findViewById(R.id.imagenp);
    Intent intent = new Intent(context, DetailedActivty.class)
    intent.putExtra(nombrep, NOMBREP_EXTRA);
    intent.putExtra(descripcionp, DESCRIPCIONP_EXTRA);
    intent.putExtra(franquiciap, FRANQUICIAP_EXTRA);
    context.startActivity(intent);
}

关于java - 我如何获取我点击的卡片 View 的信息并将其发送到下一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37464367/

相关文章:

java - Android 转换器应用程序在转换时崩溃

java - Android 应用程序说该文件不存在,但确实存在。我需要安装它

java - 为什么 Guava 的 MapMaker 在使用弱键时报告我的 map 大小不正确?

java - 与字符串一起使用时如何从 PrintWriter 中读取内容

java - 使用 Hibernate Query.list() 避免类型安全警告

java - 来自 url 的 MediaPlayer 流

android - appComponentFactory 的 list 合并失败

java - 尝试隐藏 ListView ,直到列表完全填充android

java - 在计时器完成或取消后运行代码

android - 即使使用 editText.requestFocus 也不会显示键盘