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條經驗 獲得超8個贊
有很多方法可以做到這一點。
您可以使用
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());
}
希望它能幫助你。
添加回答
舉報