Đây là trường hợp gây ra sự cố:Lỗi backstack mảnh vỡ khi thay thế các mảnh trong giao dịch?
- Tôi bắt đầu một Acitivity với nhóm ViewGroup sẽ giữ các mảnh được trình bày.
- Tôi tải Fragment A vào ViewGroup này bằng cách gọi .replace() trong giao dịch mà tôi lưu vào backstack.
- Tôi tải Phân đoạn B vào Nhóm xem, thay thế Đoạn A. Một lần nữa, tôi lưu giao dịch.
- Tôi xoay thiết bị hai lần.
- Trên vòng xoay thứ hai, Đoạn A (không hiển thị tại thời điểm này) sẽ ném ngoại lệ NullPointer.
Trường hợp ngoại lệ này được phân đoạn bởi Đoạn A, vì tôi đang lưu một số giá trị Chế độ xem (EditTexts ví dụ) trong phương thức onSaveInstanceState() của nó. Dường như, vào vòng xoay thứ hai, hệ thống không khởi tạo các Chế độ xem này, vì vậy khi tôi hỏi giá trị của chúng, tôi nhận được ngoại lệ NullPointer. Điều này có thể tránh được bằng cách nào đó không? Hoặc đang sử dụng các thao tác .replace trong một quá trình chuyển đổi đoạn được lưu vào backstack không được đề cập?
Tôi nhận thấy bạn đã chấp nhận câu trả lời này ... điều gì đã trở nên hữu ích? –