2 回答
TA贡献1830条经验 获得超3个赞
您可以通过 将扫描活动的结果获取到您的主要活动onActivityResult(),您可以像这样实现它:
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, ScanActivity.class);
startActivityForResult(intent, 500) //500 is our request code, we will use this to check if incoming data is what we want. You can put any integer value in it
}
});
扫描活动
@Override
public void handleResult(me.dm7.barcodescanner.zbar.Result result) {
// Do something with the result here
Log.v("kkkk", result.getContents()); // Prints scan results
Log.v("uuuu", result.getBarcodeFormat().getName()); // Prints the scan format (qrcode, pdf417 etc.)
Intent mainActivity = new Intent(this,MainActivity.class);
mainActivity.putExtra("tvresult1",result.getContents().toString());
setResult(Activity.RESULT_OK, mainActivity);
finish(); //exiting your ScanActivity
}
现在,我们需要做的就是覆盖onActivityResult()你的MainActivity
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 500) { //Remember the result code we set in startActivityForResult()? This is how we identify our incoming data
if(resultCode == Activity.RESULT_OK){ //Data is received
String result= data.getStringExtra("tvresult1");
//Your result is received
}
}
}
TA贡献2039条经验 获得超7个赞
有很多方法可以做到这一点。
您可以使用
startActivityForResult();
您可以使用界面连接两个活动。
静态变量也可以帮助你。
为此,创建一个类并在类内部定义一个静态变量,如下所示。
public class QRDB {
private static String QRCodeData;
public static String getData() {
return QRCodeData;
}
public static void setData(String data) {
this.QRCodeData = data;
}
}
然后在 handleResult 方法上调用 setData 方法,如下所示
@Override
public void handleResult(me.dm7.barcodescanner.zbar.Result result) {
QRDB.setData(result.getContents());
finish();
}
在 MainActivity 类的 onResume 方法中,您可以访问 QrCode 数据。
@Override
protected void onResume () {
super.onResume();
Log.v("Data ", QRDB.getData());
}
希望它能帮助你。
添加回答
举报