In my fragment onActivityResult is not calling after startActivityForResult .As i have tried following things: 1) adding getParentFragment , getActivity before startActivityResult
2) added on manifest android:configChanges="orientation|screenSize"
3)onActivityResult is not being called in Fragment
4)Checked finish () method in ZbarScanner Activity
Intent dataIntent = new Intent();
dataIntent.putExtra(SCAN_RESULT, symData);
dataIntent.putExtra(SCAN_RESULT_TYPE, sym.getType());
setResult(Activity.RESULT_OK, dataIntent);
finish();
5) Error- [ResultInfo{who=null, request=196609, result=-1, data=Intent { (has extras) }}]} checked intent has value not null which we are passing
if (isCameraAvailable()) {
Intent intent = new Intent(this.getActivity(), ZBarScannerActivity.class);
intent.putExtra(ZBarConstants.SCAN_MODES, new int[]{Symbol.QRCODE});
startActivityForResult(intent, 1);
Toast.makeText(getActivity(), "inside case", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getActivity(), "Rear Facing Camera Unavailable", Toast.LENGTH_SHORT).show();
}
----onActivityResult------
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Bundle bundle = data.getExtras();
switch (requestCode) {
case ZBAR_SCANNER_REQUEST:
case ZBAR_QR_SCANNER_REQUEST:
if (resultCode == getActivity().RESULT_OK) {
Toast.makeText(getActivity(), "Scan Result = " + data.getStringExtra(ZBarConstants.SCAN_RESULT), Toast.LENGTH_SHORT).show();
} else if (resultCode == getActivity().RESULT_CANCELED && data != null) {
String error = data.getStringExtra(ZBarConstants.ERROR_INFO);
if (!TextUtils.isEmpty(error)) {
Toast.makeText(getActivity(), error, Toast.LENGTH_SHORT).show();
}
}}
I called onActivityResult on MainActivity and with this its not calling .so removed switch case .and its working now
switch (requestCode) {
case ZBAR_SCANNER_REQUEST:
case ZBAR_QR_SCANNER_REQUEST: