我用zxing扫描条形码。我需要使用两个按钮进行扫描。一个将在条形码扫描时执行一个任务,另一个将执行其他任务。我想这样处理点击。
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.scanone:
IntentIntegrator scanIntegrator = new IntentIntegrator(this);
scanIntegrator.initiateScan();
break;
case R.id.scantwo:
IntentIntegrator scanIntegrator = new IntentIntegrator(this);
scanIntegrator.initiateScan();
break;
default:
break;
}
}如何区分在onActivityResult()方法中调用哪个按钮
public void onActivityResult(int requestCode, int resultCode, Intent intent) {}发布于 2017-05-14 13:02:08
您可以添加一个类范围变量来存储正在运行的模式或类型,在每个按钮上为该变量设置一个不同的值,而onActivityResult()则根据该变量决定如何处理结果。
前任,
//class scope
int mode = 0;onClick将是这样的:
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.scanone:
mode = 1;
break;
case R.id.scantwo:
mode = 2;
break;
default:
break;
}
//starting scanner code is the same, no need to write it in each case:
IntentIntegrator scanIntegrator = new IntentIntegrator(this);
scanIntegrator.initiateScan();
}和onActivityResult:
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
//if resultCode OK...
//if scan result not null...
if(mode == 1){
doActionOne();
}else if (mode == 2){
doActionTwo();
}
}你可能需要这个,但你可能不需要:
有时,mode值可能会丢失,因为活动暂停并继续进行,因此您可能希望使用onSaveInstanceState保存活动状态(至少是模式)。
https://stackoverflow.com/questions/43962186
复制相似问题