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