QR码发送数据到activity

QR Code send data to activity

我正在做的应用程序可以扫描二维码并将扫描的数据发送到另一个 activity。

我无法通过 QR 扫描将数据发送到另一个 activity。我认为这是因为 activity 之前的方法 returns 开始时。但我无法解决这个问题

代码如下:

public class ChooseActivity extends AppCompatActivity {



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_choose);

    final Activity activity = this;

    _flag = false;

img1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            IntentIntegrator intentIntegrator = new IntentIntegrator(activity);
            intentIntegrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
            intentIntegrator.setPrompt("Scan");
            intentIntegrator.setCameraId(0);
            intentIntegrator.setBeepEnabled(false);
            intentIntegrator.initiateScan();


            if (_flag == true)
            {
                Intent intent = new Intent(ChooseActivity.this, ReviewActivity.class);
                startActivity(intent);
            }

        }
    });
 }

以及 onActivity 结果:

@Override
   protected void onActivityResult(int requestCode, int resultCode, Intent 
data) {
    IntentResult result = IntentIntegrator.parseActivityResult(requestCode, 
 resultCode, data);
    if (result != null)
    {
        if (result.getContents() == null)
        {
            Toast.makeText(this, "Вы отменили сканирование", 
 Toast.LENGTH_SHORT).show();
        }
        else
        {
            Toast.makeText(this, result.getContents(), 
 Toast.LENGTH_SHORT).show();


            String string = result.getContents().toString();
            String[] parts = string.split("-");
            part1 = parts[0];
            part2 = parts[1];
            part3 = parts[2]; 

            String flag = "true";

            Intent intent = new Intent(ChooseActivity.this, 
  ReviewActivity.class);
            intent.putExtra("route", part1);
            intent.putExtra("driver", part2);
            intent.putExtra("car", part3);
            intent.putExtra("flag", flag);
            intent.putExtra("key", s1);
            intent.putExtra("key2", s2);

            _flag = true;

        }
    }
    super.onActivityResult(requestCode, resultCode, data);

}

当二维码被扫描时,另一个 activity 在数据发送到这里之前开始。 就是这个问题

将此代码实施到您的项目中:-

 img1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        IntentIntegrator intentIntegrator = new IntentIntegrator(activity);
        intentIntegrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
        intentIntegrator.setPrompt("Scan");
        intentIntegrator.setCameraId(0);
        intentIntegrator.setBeepEnabled(false);
        intentIntegrator.initiateScan();

    }
});