我正在尝试使用“获取按钮”获取以下条形码的信息。
首先,我扫描条形码,然后将其放在列表中。使用这个
Future _scanQR() async {
try {
String barcode = await BarcodeScanner.scan();
setState(() {
this.barcode = barcode;
list.insert(
0,
barcode,
);
});
} on PlatformException catch (ex) {
if (ex.code == BarcodeScanner.CameraAccessDenied) {
setState(() {
this.barcode = 'The user did not grant the camera permission!';
});
} else {
setState(() {
this.barcode = "Unknown Error $ex";
});
}
} on FormatException {
setState(() {
this.barcode = "You pressed the back button before scanning anything";
});
} catch (ex) {
setState(() {
this.barcode = "Unknown Error $ex";
});
}
}
然后,使用此打印列表:
Expanded(
child: ListView.builder(
padding: const EdgeInsets.all(8),
itemCount: list.length,
itemBuilder: (BuildContext context, int index) {
return Container(
height: 50.0,
margin: EdgeInsets.all(2),
child: Center(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
Text('${list[index]}'),
TextButton(
onPressed: () {
getInfo();
},
child: Text("Get Info"),
),
],
看到这里,列表是在每个结果中使用“获取信息”生成的。 例如,我扫描了两个条形码。 4912548796616 和 8998666001719 因此它们被插入到“列表”列表中。当我打印“列表”时,我的输出是:I/flutter (16927): [4912548796616, 8998666001719],这意味着我们的列表创建正在运行,现在我的问题是,我如何单独获取它们?我尝试创建一个“getInfo()”来打印它们,但它只显示我扫描的最新条码。我希望你能帮助我。谢谢!
这是我的 getInfo 函数,我正在准备查询,以获取附加到条形码的完整信息。这是一个不起作用的,因为它只打印最新扫描的条码。
Future<List> getInfo() async {
print(this.barcode);
}
答案 0 :(得分:0)
感谢克雷格的回答..所以我改变了
Future<List> getInfo() async {
print(this.barcode);
}
到这里
Future<List> getInfo(index) async {
print(list[index]);
}