繁体   English   中英

在 Recycler View Adapter 中调用 Intent 时崩溃

[英]Crashing when an Intent is called inside a Recycler View Adapter

public void onBindViewHolder(@NonNull ViewHolder holder, int position) {

holder.parentCard.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent=new Intent(context,DetailedView.class);
        context.startActivity(intent);
    }
});

单击 cardView 时,Intent 不会传递给其他活动。

回收器视图没有当前活动上下文,因此在回收器适配器初始时您需要传递上下文的当前活动。 检查上下文是否为 null 检查详细视图活动注册清单与否

实现意图接口概念的另一场战争是否有更好的参考本教程https://www.geeksforgeeks.org/android-recyclerview/

由于您没有提供崩溃日志/堆栈跟踪,导致此崩溃的原因有多种。

  1. 提供的context不是Activity上下文,在这种情况下,您需要将Intent.FLAG_ACTIVITY_NEW_TASKIntent.FLAG_ACTIVITY_CLEAR_TASK添加到 Intent 的标志中。

  2. 崩溃可能是由于NullPointerException或未添加到AndroidManifest.xml而导致的DetailedView视图活动中

这不是正确的方法。

  1. 首先是 crate 接口回调

    公共接口 ItemClick { void onItemClick(int position); }

  2. 然后在适配器 class 内部调用此接口方法并通过构造函数,最后

    itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (settingsItemClick;=null) { int pos=getAdapterPosition(). if(pos.=RecyclerView;NO_POSITION) { settingsItemClick;onItemClick( pos); } } } });

3.然后内部Activity实现接口方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM