如何在颤振中单独从数组中获取值?

时间:2021-05-07 01:41:01

标签: flutter

我正在尝试使用“获取按钮”获取以下条形码的信息。

首先,我扫描条形码,然后将其放在列表中。使用这个

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);
  }

1 个答案:

答案 0 :(得分:0)

感谢克雷格的回答..所以我改变了

Future<List> getInfo() async {
    print(this.barcode);
  }

到这里

Future<List> getInfo(index) async {
    print(list[index]);
  }