android itemView 点击监听器奇怪的行为
android itemView click listener weird behavior
我在 may recycler 适配器中有这段代码,它是从将 getActivity() 作为参数传递给适配器构造函数的片段创建的。
mAdapter = new OffersAdapter(getActivity());
它运行良好。即启动目标 activity.
然而,当我单击列表中的某些项目时,目标 activity 突然没有启动,但应用程序的一个新实例启动了???它以不同的 ID 出现在 Android Studio Monitor 中??
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(context, OfferDetails.class);
final Offer offer = list.get(position);
intent.putExtra("offer",offer);
context.startActivity(intent);
}
});
问题与点击侦听器无关。
实际上,这是由于误用了 parcable 对象。额外对象的大小非常大,导致堆栈溢出。因此应用程序再次启动导致描述的行为。
我很乐意将此报告为一个问题:从未检查过额外数据的大小。检查额外数据的大小并在超出限制时抛出异常不是更好吗?
我在 may recycler 适配器中有这段代码,它是从将 getActivity() 作为参数传递给适配器构造函数的片段创建的。
mAdapter = new OffersAdapter(getActivity());
它运行良好。即启动目标 activity.
然而,当我单击列表中的某些项目时,目标 activity 突然没有启动,但应用程序的一个新实例启动了???它以不同的 ID 出现在 Android Studio Monitor 中??
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(context, OfferDetails.class);
final Offer offer = list.get(position);
intent.putExtra("offer",offer);
context.startActivity(intent);
}
});
问题与点击侦听器无关。
实际上,这是由于误用了 parcable 对象。额外对象的大小非常大,导致堆栈溢出。因此应用程序再次启动导致描述的行为。
我很乐意将此报告为一个问题:从未检查过额外数据的大小。检查额外数据的大小并在超出限制时抛出异常不是更好吗?