一个 onActivityResult 中的两个扫描事件
two scan Events in one onActivityResult
我有两个扫描事件。
第一个,我 MainActivity
中的二维码扫描
代码:
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();
}
但是如果我扫描条形码,外壳开关没有检测到 10
。扫描 zxing 关闭并弹出 ListViewFragment
后。有什么错误吗?以及如何将我的 scanContent
字符串推送到我的 AddDataFragment
?
您错过了休息时间;
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;
}
}
我有两个扫描事件。
第一个,我 MainActivity
中的二维码扫描
代码:
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();
}
但是如果我扫描条形码,外壳开关没有检测到 10
。扫描 zxing 关闭并弹出 ListViewFragment
后。有什么错误吗?以及如何将我的 scanContent
字符串推送到我的 AddDataFragment
?
您错过了休息时间;
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;
}
}