[英]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/
由于您没有提供崩溃日志/堆栈跟踪,导致此崩溃的原因有多种。
提供的context
不是Activity
上下文,在这种情况下,您需要将Intent.FLAG_ACTIVITY_NEW_TASK
或Intent.FLAG_ACTIVITY_CLEAR_TASK
添加到 Intent 的标志中。
崩溃可能是由于NullPointerException
或未添加到AndroidManifest.xml
而导致的DetailedView
视图活动中
这不是正确的方法。
首先是 crate 接口回调
公共接口 ItemClick { void onItemClick(int position); }
然后在适配器 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.