2015-11-02 2 views
1

Ive получил два события сканирования. Первый Один из них, QR Code Scan в моем MainActivity Код:два сканирования События в одном onActivityResult

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.scanbutton); 
     fab.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
       intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); 
       startActivityForResult(intent,10); 
      } 
     }); 

И Сэцэн один, простой сканирование штрих-кода в моем AddDataFragment Код:

 ImageButton ib = (ImageButton) view.findViewById(R.id.button_scan_serial); 
     ib.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
       intent.putExtra("SCAN_FORMATS", "CODE_39,CODE_93,CODE_128,DATA_MATRIX,ITF,CODABAR,EAN_13,EAN_8,UPC_A"); 
       startActivityForResult(intent,11); 
      } 
     }); 

Это мой onActivityResult код в мой MainActivity

public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
     super.onActivityResult(requestCode, resultCode, intent); 

      if (resultCode == RESULT_OK) { 
       String scanContent = intent.getStringExtra("SCAN_RESULT"); 
       String scanFormat = intent.getStringExtra("SCAN_RESULT_FORMAT"); 
       Log.d("INHALT", scanContent); 
       Log.d("FORMAT", scanFormat); 

       switch (requestCode){ 
        case (10):{ 
         String[] Split = scanContent.split("\\s"); 
         String product = Split[0]; 
         String label = Split[1]; 
         String serial = Split[2]; 
         String mac = Split[3]; 
         String daaid = Split[4]; 
         String bill = Split[5]; 

         mydb.insertData(product, label, serial, mac, daaid, bill); 
         break; 
        } 
        case (11):{ 
         Log.d("TEST", "test test test - arrived here"); 
        } 
       } 
      } else if (resultCode == RESULT_CANCELED) { 

       Log.d("TEST", "result_canceled"); 
       break; 
      } 

     Fragment fragment; 
     FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
     fragment = new ListViewFragment(); 
     ft.replace(R.id.container, fragment); 
     ft.commitAllowingStateLoss(); 
    } 

Но если я сканирую штрих-код t он переключатель случая не обнаружил 10. после сканирования zxing закрывается и появляется сообщение ListViewFragment. Есть ли ошибка? И как я нажимаю свою строку scanContent на мой AddDataFragment?

+0

Если есть лучшие способы и у меня это совершенно не так, пожалуйста, не стесняйтесь сказать так – Rastaman

ответ

1

Вы пропустили break;

switch (requestCode){ 
     case (10):{ 
      String[] Split = scanContent.split("\\s"); 
      String product = Split[0]; 
      String label = Split[1]; 
      String serial = Split[2]; 
      String mac = Split[3]; 
      String daaid = Split[4]; 
      String bill = Split[5]; 

      mydb.insertData(product, label, serial, mac, daaid, bill); 
      break; 
     } 
     case (11):{ 
      Log.d("TEST", "ICH HABE ERKANNT DAS ICH EINEN BARCODE GESCANNT HABE"); 
      break; 
     } 
    } 
+0

спасибо чувак ваше право. Вы решили проблему, которая не была одной. (пока) – Rastaman

Смежные вопросы