0

我一直在使用 zXingScannerView,我在同一个 Activity 中的 Edittext 中设置了结果文本,但它不起作用!!注意:它显示在 Toast 中:

Toasty.success(getApplicationContext(),"Code Scaned ! :"+result.getText(),Toast.LENGTH_SHORT).show();

我的代码:

public void scan(View view){
    zXingScannerView =new ZXingScannerView(getApplicationContext());
    setContentView(zXingScannerView);
    zXingScannerView.setResultHandler(this);
    zXingScannerView.startCamera();
}

@Override
protected void onPause() {
    super.onPause();
    zXingScannerView.stopCamera();
    setContentView(R.layout.activity_scan_);
}

@Override
public void handleResult(Result result) {
    setContentView(R.layout.activity_scan_);
    Toasty.success(getApplicationContext(),"Code Scaned ! :"+result.getText(),Toast.LENGTH_SHORT).show();
    Scan_Activity.this.scan.setText(result.getText());
    zXingScannerView.resumeCameraPreview(this);

}
4

1 回答 1

0

在这里,您只需要在 onCreate() 中调用一次 setContentView(),因为您在 handleResult() 中再次调用了 setContentView(),所以会出现问题。

 @Override
public void handleResult(Result result) {
    Toasty.success(getApplicationContext(),"Code Scaned ! :"+result.getText(),Toast.LENGTH_SHORT).show();
    Scan_Activity.this.scan.setText(result.getText());
    zXingScannerView.resumeCameraPreview(this);

}

也不需要在 onPause() 中再次调用 setContentView() ,因为在调用 onCreate() 时已经创建了布局。

这肯定会奏效。另请检查此以获取更多参考

于 2018-12-13T14:38:28.920 回答