2015-11-02 71 views
1

我有兩個掃描事件。 第一個,QR碼掃描我的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); 
      } 
     }); 

而且SECEN一個,在我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。掃描結束後,彈出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