[英]Sending result of zxing barcode scanner in another class to Main class and activity
[英]Return activity result to another class
所以我有RegisterActivity.java,在用戶單擊注冊后,它應該在ScanActivity.java中調用ScanActivity()方法。
在ScanActivity()中,它將開始掃描活動,並將掃描結果返回給RegisterActivity.java。
使用掃描結果,用戶驗證將在RegisterActivity.java中進行。
這個怎么做?
在RegisterActivity.java中
// call ScanActivity
ScanActivity scanActivity = new ScanActivity();
// get scan result from ScanActivity
String scanResult = scanActivity.ScanActivity();
// compare with useridtxt
// if useridtxt same with scan result, start save into parse
if (useridtxt.equals(scanResult)) {
// some code here
} else if (!useridtxt.equals(scanResult)) {
// some code here
} else {
// some code here
}
在ScanActivity.java中
public class ScanActivity extends Activity {
public static final int CODE39 = 39;
private static final int ZBAR_SCANNER_REQUEST = 0;
String ScanActivity() {
Intent intent = new Intent(this, ZBarScannerActivity.class);
intent.putExtra(ZBarConstants.SCAN_MODES, new int[]{Symbol.CODE39});
startActivityForResult(intent, ZBAR_SCANNER_REQUEST);
String scanResult = getIntent().getStringExtra(ZBarConstants.SCAN_RESULT);
return scanResult;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (resultCode == RESULT_OK)
{
// maybe save the scan result here, and pass it to String scanResult in RegisterActivity.java?
} else if(resultCode == RESULT_CANCELED) {
Toast.makeText(this, "Camera unavailable", Toast.LENGTH_SHORT).show();
}
}
這很簡單。 示例代碼可以如下運行
startActivityForResult(Intent intent, int requestCode); //Fill intent with your desired class.
在目標類(ScanActivity)中,不要忘記將結果放回去
setResult (int resultCode, Intent data) //in data bundle put all your required output
這樣,您可以提取具有預期結果代碼的匹配數據。
現在在呼叫者班
protected void onActivityResult (int requestCode, int resultCode, Intent data) {} //Your logic to manipulate data
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.