"Can not perform this action after onSaveInstanceState" 旋转设备后异常
"Can not perform this action after onSaveInstanceState" exception after rotate device
我有一个 ViewHolder,在 bindView() 方法中设置了一个 OnLongClickListener。
当我旋转设备并长按列表项时java.lang.IllegalStateException: 发生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;
});
}
}
我被一个团解决了...
在调用方中添加checkFingerprintAuthentication()方法Class:
void checkFingerprintAuthentication() {
FingerprintDialogFragment fingerprintDialogFragment = FingerprintDialogFragment.getInstance(this);
fingerprintDialogFragment.show(getActivity().getSupportFragmentManager(), FINGERPRINT_DIALOG_TAG);
}
将 Caller Class 作为参数发送给 View Holder 并调用 checkFingerprintAuthentication():
public void bindView(final DecreeCartableController cartableController) {
...
itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
cartableController.checkFingerprintAuthentication();
return true;
}
});
}
问题解决了! :)
我有一个 ViewHolder,在 bindView() 方法中设置了一个 OnLongClickListener。
当我旋转设备并长按列表项时java.lang.IllegalStateException: 发生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;
});
}
}
我被一个团解决了...
在调用方中添加checkFingerprintAuthentication()方法Class:
void checkFingerprintAuthentication() { FingerprintDialogFragment fingerprintDialogFragment = FingerprintDialogFragment.getInstance(this); fingerprintDialogFragment.show(getActivity().getSupportFragmentManager(), FINGERPRINT_DIALOG_TAG); }
将 Caller Class 作为参数发送给 View Holder 并调用 checkFingerprintAuthentication():
public void bindView(final DecreeCartableController cartableController) { ... itemView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { cartableController.checkFingerprintAuthentication(); return true; } }); }
问题解决了! :)