你如何在sqlite和flutter中随机选择物品?

eh57zj3b  于 2023-01-21  发布在  Flutter
关注(0)|答案(1)|浏览(84)

我已经使用sqflite创建了一个flutter应用程序。存储在数据库中的数据使用itemBuilder显示,如下所示

....
     itemBuilder: (BuildContext context, int index) => GestureDetector(
       onTap: () {},
       child: Padding(
         padding: const EdgeInsets.all(8.0),
         child: Container(
           padding: const EdgeInsets.all(8.0),
           child: Column(
             children: <Widget>[
               Row(
                 mainAxisAlignment: MainAxisAlignment.spaceBetween,
                 children: <Widget>[
                   Expanded(
                     child: Padding(
                       padding: const EdgeInsets.all(8.0),
                       child: Text(
                         clientList[index].numberphone,
                         style: Theme.of(context).textTheme.bodyText2,
                       ),
                     ),
                   ),
                 ],
               ),
               Padding(
                 padding: const EdgeInsets.all(8.0),
                 child: Row(
                   mainAxisAlignment: MainAxisAlignment.start,
                   children: <Widget>[
                     Expanded(
                       child: Text(clientList[index].price.toString() ?? 0,
                           style: Theme.of(context).textTheme.bodyText1),
                     )
                   ],
                 ),
               ),
             
             ],
           ),
         ),
       ),
     ),

现在,我想从clientList中选择一个满足某些条件的客户列表,例如客户的价格大于1000。然后,当单击轮廓按钮时,从该列表中随机选择一个项目。
有什么想法或代码可以做到这一点吗?

nwsw7zdq

nwsw7zdq1#

通过“从列表中随机选择一个满足某些条件的项目”,我认为你指的是clientList
你的问题分为两部分:
1.**列出满足某些条件的项目。**对于此部件,您可以使用Iterable.where()
1.**选择随机项目。**为此,请使用collection package中的Iterable.sample()
下面是一个可能的外观示例:

import 'package:collection/collection.dart';

var itemsThatMeetCriteria = clientList.where((customer) => customer.price > 1000);
var randomItem = itemsThatMeetCriteria.sample(1).single;

相关问题