Tôi gặp một số sự cố khi khởi chạy Phân đoạn nếu tôi thực hiện quét mã QR qua thư viện ZXing 2.0.Khởi chạy Fragment sau khi quét QR Code ZXing 2.0
tôi có ngoại lệ này:
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0, result=-1, data=Intent { act=com.google.zxing.client.android.SCAN flg=0x80000 (has extras) }} to activity {fraiss.yucrowd/fraiss.yucrowd.activities.ScanQrCode}: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState*
Khi tôi thực thi mã này:
@Override
public void onCreate(Bundle bundle) {
// TODO Auto-generated method stub
super.onCreate(bundle);
setContentView(R.layout.scan_qr_code);
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
}
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0)
{
if (resultCode == RESULT_OK)
{
String contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
// Handle successful scan
Log.d("MENU", "Scan result: " + contents + " as " + format);
// Load details for qr code
FragmentTransaction fragmentTransaction = getSupportFragmentManager()
.beginTransaction();
Fragment fragmentDetails = new FragmentDetails(
contents);
fragmentTransaction
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
fragmentTransaction.replace(R.id.fragment_main,
fragmentDetails);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
else if (resultCode == RESULT_CANCELED)
{
// Handle cancel
Log.d("MENU", "Scan canceled");
}
}
}
I'am tự hỏi tại sao điều này xảy ra. Không thể khởi chạy một Fragment-Transaction ở cuối ActivityResult?
Thx để được trợ giúp trước.