2 回答

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以通過(guò) 將掃描活動(dòng)的結(jié)果獲取到您的主要活動(dòng)onActivityResult(),您可以像這樣實(shí)現(xiàn)它:
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
}
});
掃描活動(dòng)
@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
}
現(xiàn)在,我們需要做的就是覆蓋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貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊
有很多方法可以做到這一點(diǎn)。
您可以使用
startActivityForResult();
您可以使用界面連接兩個(gè)活動(dòng)。
靜態(tài)變量也可以幫助你。
為此,創(chuàng)建一個(gè)類并在類內(nèi)部定義一個(gè)靜態(tài)變量,如下所示。
public class QRDB {
? ? private static String QRCodeData;
? ? public static String getData() {
? ? ? ? return QRCodeData;
? ? }
? ? public static void setData(String data) {
? ? ? ? this.QRCodeData = data;
? ? }
}?
然后在 handleResult 方法上調(diào)用 setData 方法,如下所示
@Override
public void handleResult(me.dm7.barcodescanner.zbar.Result result) {
? ? QRDB.setData(result.getContents());
? ? finish();
}
在 MainActivity 類的 onResume 方法中,您可以訪問(wèn) QrCode 數(shù)據(jù)。
@Override
protected void onResume () {
? ? super.onResume();
? ? Log.v("Data ", QRDB.getData());
}
希望它能幫助你。
添加回答
舉報(bào)