Java 在带有片段的活动中使用ZXing不起作用

Java 在带有片段的活动中使用ZXing不起作用,java,android,barcode,zxing,barcode-scanner,Java,Android,Barcode,Zxing,Barcode Scanner,在我的应用程序中,我有一个main活动,它使用不同的片段。其中一个片段是一种细节片段,我想通过扫描二维码来捕获一些序列。目前,我正在尝试使用监视整合器。我能够成功地扫描代码,但之后,我的应用程序无法正确返回。它只显示我的主要活动,但没有祝酒词 我还尝试在片段中放置一个onActivityResult(),在activitiesonActivityResult()中放置一个super.onActivityResult(),但始终是相同的行为。它只是跳入主要活动,以后什么也不会发生 有人能向我解释一

在我的应用程序中,我有一个
main活动
,它使用不同的片段。其中一个片段是一种细节片段,我想通过扫描二维码来捕获一些序列。目前,我正在尝试使用
监视整合器
。我能够成功地扫描代码,但之后,我的应用程序无法正确返回。它只显示我的主要活动,但没有祝酒词

我还尝试在片段中放置一个
onActivityResult()
,在activities
onActivityResult()
中放置一个
super.onActivityResult()
,但始终是相同的行为。它只是跳入主要活动,以后什么也不会发生

有人能向我解释一下我在哪里犯的错误吗?我想扫描条形码并在片段类中获得结果

这是我的
main活动
code:

public class MainActivity extends Activity {
    private Button startenButton, ansehenButton, abmeldenButton;
    private FrameLayout fragmentFrame;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        fragmentFrame = (FrameLayout) findViewById(R.id.frameLayout);

        startenButton = (Button) findViewById(R.id.buttonPruefungStart);
        startenButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                FragmentTransaction transaction = getFragmentManager().beginTransaction();
                if (fragmentFrame.getChildCount() < 1) {
                    transaction.add(R.id.frameLayout, new PruefungStartenFragment());
                } else {
                    transaction.replace(R.id.frameLayout, new PruefungStartenFragment());
                }
                transaction.commit();
            }
        });
    }

    public void scan() {
         IntentIntegrator integrator = new IntentIntegrator(this);
         integrator.initiateScan();
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
        if (scanResult != null) {
            Toast.makeText(this, scanResult.getContents(), Toast.LENGTH_LONG).show();
        }
    }

}
public class PruefungStartenFragment extends Fragment {

    private TextView datum, ort, pruefer, bedienerdisplay, scanner, fingerprintscanner, quittungsdrucker, barcodeleser,
            webcam, kundendisplay, terminal;
    private Button scanButton, startButton;

    public static PruefungStartenFragment newInstance(String code) {
        Bundle args = new Bundle();
        args.putSerializable("code", code);

        PruefungStartenFragment fragment = new PruefungStartenFragment();
        fragment.setArguments(args);

        return fragment;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View v = inflater.inflate(R.layout.pruefung_starten_fragment, container, false);
        scanButton = (Button) v.findViewById(R.id.buttonScan);
        scanButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                ((MainActivity)getActivity()).scan();
            }
        });



        return v;
    }



}

我解决了我的问题。。。在我的清单中,我的主要活动中有一个
android:noHistory=“true”
。这将防止条形码扫描仪中的扫描活动将结果传递给my Main activity,因为堆栈上没有可以将结果传递给的活动