"Не удается выполнить это действие после onSaveInstanceState" исключение после поворота устройства
У меня есть 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;
});
}
}
1 ответ
Решение
Я решил проблему делегированием...
Добавьте метод checkFingerprintAuthentication() в класс вызывающих:
void checkFingerprintAuthentication() { FingerprintDialogFragment fingerprintDialogFragment = FingerprintDialogFragment.getInstance(this); fingerprintDialogFragment.show(getActivity().getSupportFragmentManager(), FINGERPRINT_DIALOG_TAG); }
Отправьте класс вызывающего в качестве параметра View Holder и вызовите checkFingerprintAuthentication():
public void bindView(final DecreeCartableController cartableController) { ... itemView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { cartableController.checkFingerprintAuthentication(); return true; } }); }
задача решена!:)