在我的应用程序中,我有扫描按钮。点击它我打开另一个应用程序" BarcodeScanner"它扫描条形码并将结果返回到我在onActivityResult中的应用程序,我将在ArrayList上添加结果。 如果我再次单击扫描按钮并再次打开BarcodeReader应用程序以扫描下一个条形码,我之前在arraylist上的结果将被清除。所以每当我得到BarcodeScanner的结果时,只有最近的结果出现在ArrayList上。如何保持所有重新安排,以便我可以在列表中显示所有扫描的条形码?请帮忙..
这是我的代码
public void onClick(View v){
//check for scan button
if(v.getId()==R.id.scan_barcode){
//instantiate ZXing integration class
IntentIntegrator scanIntegrator = new IntentIntegrator(this);
//start scanning
scanIntegrator.initiateScan();
}
}
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
//retrieve result of scanning - instantiate ZXing object
IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
//check we have a valid result
if (scanningResult != null) {
//get content from Intent Result
String scanContent = scanningResult.getContents();
//get format name of data scanned
String scanFormat = scanningResult.getFormatName();
//Add to arraylist
barcodes.add(scanContent);
}
}
else{
//invalid scan data or scan canceled
Toast toast = Toast.makeText(getApplicationContext(),
"No scan data received!", Toast.LENGTH_SHORT);
toast.show();
}
}
答案 0 :(得分:0)
1)您可以使用sharedprefereces在arraylist中存储数据
2)启动条形码扫描时,你无法完成你的集会活动
arralist将声明为global..and你必须在arraylist中添加值...
我希望对你有用。
答案 1 :(得分:0)
将数组列表存储在共享首选项中。
注意:还提供了一个按钮,如果需要,您可以在该按钮上清除存储在共享首选项中的列表。很多时候,尤其是测试目的,您可能想要刷新该列表。因此,通过提供选项,您可以重置arraylist,或仍然维护不同应用程序执行之间的数据。
答案 2 :(得分:0)
你能告诉我你的代码吗? 如果arraylist是类级别的变量,则不应该是这样。
以下是帮助的示例:
BarcodeScanner scanner = new BarcodeScanner();
ArrayList<Result> list = new ArrayList<Result>();
public void onActivityResult() {
Result value = scanner.receiveScan();
list.add(value);
}
答案 3 :(得分:0)
1。在MainActivity
使用intent
startActivityForResult()
传递给SecondActivity
//Pass the ArrayList from the MainActivity
intent.putExtra("ARRAYLIST", arrayList);
startActivityForResult(intent, REQ_CODE);
// In your on Activity Result get the data
Bundle extras = intent.getExtras();
if(extras != null){
arrayList = (ArrayList) extras.get("RESULT_ARRAYLIST");
}
2。获取ArrayList
中的SecondActivity
,您可以在SecondActivity中对Arraylist执行操作,完成后,使用setResult(resultCode, data)
使用Intent传递相同的ArrayList
// Get the Data in the SecondActivity
Bundle extras = getIntent().getExtras();
if(extras != null){
resultArrayList = (ArrayList) extras.get("ARRAYLIST");
}
// When you are finished
intent.putExtra("RESULT_ARRAYLIST", resultArrayList);
setResult(RESULT_OK,data);