Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何根据flifter中文本小部件的索引将多个文本小部件的数据传递到字符串列表_Android_Flutter_Dart_Google Cloud Firestore - Fatal编程技术网

Android 如何根据flifter中文本小部件的索引将多个文本小部件的数据传递到字符串列表

Android 如何根据flifter中文本小部件的索引将多个文本小部件的数据传递到字符串列表,android,flutter,dart,google-cloud-firestore,Android,Flutter,Dart,Google Cloud Firestore,我通过StreamBuilder从firestore中获取数据,以包含文本小部件列表视图的形式。我想使用toString()将每个文本小部件的数据传递给一个单独的字符串。如何根据索引将每个文本小部件分别转换为字符串 Widget download(){ return StreamBuilder( stream: Firestore.instance.collection('branch11').snapshots(), builder: (context,snapshot){ if(!s

我通过StreamBuilder从firestore中获取数据,以包含文本小部件列表视图的形式。我想使用toString()将每个文本小部件的数据传递给一个单独的字符串。如何根据索引将每个文本小部件分别转换为字符串

Widget download(){
return StreamBuilder(
 stream: Firestore.instance.collection('branch11').snapshots(),
 builder: (context,snapshot){
  if(!snapshot.hasData) return CircularProgressIndicator();
   return ListView.builder(
    itemCount: snapshot.data.documents.length,
    itemBuilder: (context,index){
      DocumentSnapshot subjects= snapshot.data.documents[index];
       return ListView(
        children: <Widget>[
          Text('${subjects['download']}'),
      ],);
    },);
 },
);

String pdfUrl = download().toString();
Widget下载(){
返回流生成器(
流:Firestore.instance.collection('branch11').snapshots(),
生成器:(上下文,快照){
如果(!snapshot.hasData)返回CircularProgressIndicator();
返回ListView.builder(
itemCount:snapshot.data.documents.length,
itemBuilder:(上下文,索引){
DocumentSnapshot subjects=snapshot.data.documents[index];
返回列表视图(
儿童:[
文本(“${subjects['download']}”),
],);
},);
},
);
字符串pdfUrl=download().toString();


首先,我认为您必须ListTile或另一个小部件(图像、原始..等)作为小部件生成器,而不是另一个ListView内部的另一个ListView

所以,您的代码将像这样简单,onTap在用户单击项目时回调每次下载,如果您想制作更复杂的小部件,只需用新的小部件替换ListTile即可

StreamBuilder(
      stream: Firestore.instance.collection('branch11').snapshots(),
      builder: (context,snapshot){
        if(!snapshot.hasData) return CircularProgressIndicator();
        return ListView.builder(
          itemCount: snapshot.data.documents.length,
          itemBuilder: (context,index){
            DocumentSnapshot subjects= snapshot.data.documents[index];
            return  ListTile(
              title: Text(subjects['name']),
              onTap: (){
                String downloadUrl = subjects['download'];
                String name= subjects['name'];

                debugPrint("name at $index =$name");
                 debugPrint("downloadUrl at $index =$downloadUrl");

                //do what you want here
              },
            );
          },);
      },
    );
在屏幕之间发送数据 -使SecondScreen构造函数获取要发送给它的数据类型的参数。在此特定示例中,数据定义为字符串值,并在此处使用this.text进行设置

class SecondScreen extends StatelessWidget {
  final String text;
  SecondScreen({Key key, @required this.text}) : super(key: key);

  ...
然后使用FirstScreen小部件中的导航器将路由推送到SecondScreen小部件。将要作为参数发送的数据放入其构造函数中

Navigator.push(
    context,
    MaterialPageRoute(
      builder: (context) => SecondScreen(text: 'Hello',),
    ));

请添加更多解释!!listview包含从firestore集合“branch11”获取数据的文本小部件。我要做的是使用toString()将这些文本小部件转换为字符串。假设listview中有4个文本小部件,我希望将它们转换为4个不同的字符串,而不仅仅是一个字符串。并且“下载”是字段的键??如果可以添加firestore快照图像是,“下载”是包含URL的我的字段的键。当用户单击“下载/预览”按钮时,他将被重定向到新的屏幕组webview的初始化,其初始url以listview中的文本小部件的形式从firestore中获取。问题是我想将这些文本小部件转换为字符串,但我不知道如何将这些文本小部件转换为字符串,因为将有多个文本小部件。感谢这一点,它确实解决了我的主要问题,但我该如何处理What’下载URL字符串到另一个屏幕的数据是什么?@youtubegamer im编辑答案,如果有帮助的话,请让我的答案正确。我把它弄得很复杂,但你用一种简单的方法解决了它。