【发布时间】:2018-07-12 15:33:29
【问题描述】:
我有一个 ViewHolder,并且在 bindView() 方法中设置了一个 OnLongClickListener。
当我旋转设备并长按列表项时 java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState 发生异常。
我已经重写了 show() 方法并测试了 commitAllowingStateLoss 但仍然出现异常。
谁能帮帮我?
public void bindView(final FragmentActivity activity) {
...
itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
FingerprintDialogFragment fingerprintDialogFragment = FingerprintDialogFragment.getInstance(DecreeItemViewHolder.this);
fingerprintDialogFragment.show(activity.getSupportFragmentManager(), FINGERPRINT_DIALOG_TAG);
return true;
});
}
}
【问题讨论】:
-
不要将 Activity 传递给 Adapter 到 Viewholder,而是尝试传递 LongClickListener
-
谢谢您,您的解决方案让我有一个想法... :)
标签: android dialogfragment onsaveinstancestate