QR-код отправляет данные в активность - PullRequest
0 голосов
/ 01 июня 2018

Я занимаюсь приложением, которое сканирует QR-код и отправляет отсканированные данные в другой вид деятельности.

Я не могу отправить данные в другой вид деятельности с помощью сканирования QR.Я думаю, это потому, что когда метод возвращается до начала активности.Но я не могу решить эту проблему

Вот код:

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);

}

И когда сканируется QR-код, начинается другое действие, прежде чем данныеотправлено сюда.Вот в чем проблема

1 Ответ

0 голосов
/ 01 июня 2018

Реализуйте этот код в своем проекте: -

 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();

    }
});
...