首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在颤动中将List<List<dynamic>>转换为ArrayList

在颤动中将List<List<dynamic>>转换为ArrayList
EN

Stack Overflow用户
提问于 2021-02-25 17:30:24
回答 2查看 75关注 0票数 0

我是flutter的新手,我想将列表转换为ArrayList。下面是我当前的列表输出

数据[数量,描述,单价,总价[1, Jeans, 106.0, 106.0], [2, Shirt, 24.38, 24.38], [3, Demo Hoodie / XL, 106.0, 318.0], [4, Demo Hoodie / 2XL, 106.0, 106.0], [1, 牛仔裤-短款, 106.0, 106.0], [5, 衬衫-长款, 24.38, 24.38], [6, Demo Hoodie-Lg / XL, 106.0, 318.0], [ Demo Hoodie-Mg / 2XL, 106.0, 106.0], [3, Jeans-RG, 106.0, 106.0], [4, Shirt-MG, 24.38, 24.38], [7, Demo Hoodie-TY / XL, 106.0, 318.0] , [9, Demo Hoodie-Levis / 2XL, 106.0, 106.0], [1, Demo Hoodie-J&J / XL, 106.0, 318.0], [2, Demo Hoodie-M&J / 2XL, 106.0, 107, Temo], [ Hoodie-TY / XL, 106.0, 318.0], [5, Zemo Hoodie-Levis / 2XL, 106.0, 106.0], [6, Aemo Hoodie-J&J / XL, 106.0, 318.0], [2, Bemo Hoodie/J2XLM , 106.0, 106.0], [9, Temo Hoodie-TY / XL, 106.0, 318.0], [1, Zemo Hoodie-Levis / 2XL, 106.0, 106.0], [2, Aemo Hoodie-J&J / XL, 136.0.]10 , [7, Bemo Hoodie-M&J / 2XL, 106.0, 106.0]]

我想将该数组列表添加到flutter中的recyclerView中。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-25 18:47:04

您可以使用dart:convert并使用jsonDecode但是这是不会起作用的,除非你从这个添加单引号/双引号到每个单词的字符串中删除。

或者,您可以通过拆分字符串来手动转换它。

代码语言:javascript
复制
import 'dart:core';

main(){
  
 String data = "[[Qty, Desc, Unitprice, totalprice], [1, Jeans, 106.0, 106.0], [2, Shirt, 24.38, 24.38], [3, Demo Hoodie / XL, 106.0, 318.0], [4, Demo Hoodie / 2XL, 106.0, 106.0], [1, Jeans-short, 106.0, 106.0], [5, Shirt-Long, 24.38, 24.38], [6, Demo Hoodie-Lg / XL, 106.0, 318.0], [4, Demo Hoodie-Mg / 2XL, 106.0, 106.0], [3, Jeans-RG, 106.0, 106.0], [4, Shirt-MG, 24.38, 24.38], [7, Demo Hoodie-TY / XL, 106.0, 318.0], [9, Demo Hoodie-Levis / 2XL, 106.0, 106.0], [1, Demo Hoodie-J&J / XL, 106.0, 318.0], [2, Demo Hoodie-M&J / 2XL, 106.0, 106.0], [7, Temo Hoodie-TY / XL, 106.0, 318.0], [5, Zemo Hoodie-Levis / 2XL, 106.0, 106.0], [6, Aemo Hoodie-J&J / XL, 106.0, 318.0], [2, Bemo Hoodie-M&J / 2XL, 106.0, 106.0], [9, Temo Hoodie-TY / XL, 106.0, 318.0], [1, Zemo Hoodie-Levis / 2XL, 106.0, 106.0], [2, Aemo Hoodie-J&J / XL, 106.0, 318.0], [7, Bemo Hoodie-M&J / 2XL, 106.0, 106.0]]";
  
  
  List splittedData = data.substring(2,data.length-1).split("], [");


  List> formattedData = [];

  splittedData.forEach( (stringVal) => formattedData.add(stringVal.split(', ')));

  print(formattedData[0][0]);
  

}

您可以运行以下代码dartpad.dev检查其输出。

通过使用正则表达式来解析数据,而不是使用字符串拆分数据,可以进一步改进这一点。如果数据本身不一致,并且其中有单引号/双引号和方括号,就会出现这种情况。

票数 0
EN

Stack Overflow用户

发布于 2021-02-25 19:04:29

  • 对于这种用法,应该使用对象,如List而不是List
  • Flutter中没有RecyclerView,它是ListView小部件。
  • 字符串应在引号("")之间

下面是一个使用ListView构建器的示例:

代码语言:javascript
复制
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      debugShowCheckedModeBanner: false,
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State {
  
  var list = [["data1", "data2"], ["data1","data2"],["data1","data2"]];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: ListView.builder(
          itemCount: list.length,
          itemBuilder: (context, index) {
            return Container(
              color: Colors.grey[200],
              padding: EdgeInsets.symmetric(vertical: 10),
              child: Row(
                mainAxisAlignment: MainAxisAlignment.center,
                children: List.generate(
                  list[index].length,
                  (index2) {
                    return Text(list[index][index2]);
                  }
                )
              ),
            );
          }
        )
      ),
    );
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66365820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档