Как совместить вставку кода и штрих-кода вместе в Android? - PullRequest
0 голосов
/ 08 июля 2019

У меня есть два набора кода. Для обоих наборов требуется одинаковое имя onActivityResult, но я не уверен, как объединить их без столкновения.

Два набора кода:

  1. 1-й сет : пользователи должны щелкнуть по no-image ImageView, чтобы выбрать изображение на своем мобильном устройстве, а затем оно отобразит выбранное ими изображение.

  2. 2-й сет : пользователи должны нажать кнопку для сканирования штрих-кода. Он откроет камеру для сканирования пользователем штрих-кода и после сканирования отобразит номер из штрих-кода.

Вот код для двух наборов:

1-й набор кодов:

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    // Check for Image Request , If user get the image is ok, and the image is not null
    if(requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null){

        //Put the image data into this mImageUri
        mImageUri = data.getData();

        //This line take the data from mImageUri and load into mImageView so basically changing the uri to image
        Picasso.with(this).load(mImageUri).into(ItemORFoodImg);
    }
}

2-й набор кодов:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
    final IntentResult result = IntentIntegrator.parseActivityResult(requestCode,resultCode,data);
    if(result != null){
        if(result.getContents() == null){
            Toast.makeText(this, "Result Not Found", Toast.LENGTH_SHORT).show();
        }
        else{
            AlertDialog.Builder alertdialogbuilder = new AlertDialog.Builder(this);
            alertdialogbuilder.setMessage(result.getContents()+"\n\nWant to add as new item?");
            alertdialogbuilder.setTitle("ResultScanned");
            alertdialogbuilder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    String barcode = result.getContents();
                    Intent intent = new Intent(BarcodeTest.this,AddNewItem.class);
                    intent.putExtra(BarID, barcode);
                    startActivity(intent);
                }
            });
            alertdialogbuilder.setNegativeButton("No", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    finish();
                }
            });
            AlertDialog alertDialog = alertdialogbuilder.create();
            alertDialog.show();
        }
    }
    else {
        super.onActivityResult(requestCode,resultCode,data);
    }
}

Может кто-нибудь помочь мне объединить эти два фрагмента кода без столкновения?

1 Ответ

1 голос
/ 08 июля 2019

Вы можете использовать IntentService.Вы можете создать два класса Java, один для вставки кода и один для QR-кода.При нажатии ImageView перейдите к вставке класса кода, а при нажатии кнопки перейдите к классу QR-кода.А затем передайте данные в свою активность.Перейдите по этой ссылке https://developer.android.com/reference/android/app/IntentService

...