假设您有一个更大的客户数据库,比如5000条记录。使用一个简单的select查询,在一个移动应用程序上可以花费2-5秒的时间来填充一个列表视图,并有成千上万的可用客户。
但是用户只需要选择一个,那么选择客户的最佳方式是什么?如果你有一些记录,例如: 50名客户,选择的滚动列表是最好的方法,但你做了什么来满足显示从成千上万的选择?
您将如何将这个问题用于显示库存项目,以便将其包括在发票上?
这与客户的情况不同,因为您会多次将库存项目添加到发票中?
编辑1
我指的是客户/客户数据库。
发布于 2010-02-11 19:14:17
在具有smalls屏幕和限制性输入的移动设备上,您可以使用数据的层次结构显示来管理大型数据集,从完整集的抽象开始,然后深入到实际的单个条目。
所有的数据都可以被划分为有自己的子组的子组,等等。要在移动设备上显示大型数据集,只需查找子组,并按最大到最小和/或最特定的顺序显示它们。
例如,假设您有一个大型的服装数据库。服装有几个由来已久的、文化上被接受的子类别,所以你可以用它们来掩盖尺寸和复杂性,就像百货公司使用类别来指导顾客找到合适的部门一样。
当用户打开应用程序时,它会执行一个查询以获得最高级别的子类别。在这个例子中,孩子,男人和女人。当用户选择说男人的东西时,他们会得到一份男人用品的分类清单,例如季节。然后是服装类型,衬衫,裤子等。然后属性的特定类型的服装和上到特定的服装物品。
所以,一个用户典型的输入会运行这样的东西:男性的->夏季服装->衬衫->棉花->品牌->颜色->衬衫清单->特定的衬衫。在每个阶段,应用程序只显示几个供用户选择的选项。
搜索可能很棘手。在手机上输入详细的搜索可能很困难,但是大范围的搜索可以返回到许多项目。我认为搜索应该有一些自动限制,例如让用户从一个可管理大小的列表中选择类别搜索词。如果搜索不能限制在合理的范围内,则其结果也应显示在层次结构中。
如何将这个问题用于显示库存物品以将其包括在发票上?
我会用一个可切换的视角。在iPhone上,那将是一个选项卡。一个选项卡将有您的发票,另一个选项卡将具有库存系统的层次结构导航。当您在“库存”选项卡中选择项目时,它会将它们添加到“发票”选项卡中。(如果使用正确配置的数据模型,这将自动发生。)用户可以轻松地切换,从添加项目从库存到查看他们的发票。
Edit01:
我对Android并不熟悉,但是在iPhone上,您可以为非常大的表建立一个索引,这样您就可以跳下可能有数百个条目的表。查看contact应用程序以获得索引的示例。
当然,索引实际上只是一个伪装的层次结构。在联系人的情况下,联系人组按字母顺序分为两级层次结构,然后是以每个字母开头的联系人。
Edit02:
--您还没有讨论对数据维护的含义。如果您根据库存项添加了大量类别,那么维护最终用户的这些类别就会有很高的开销:库存组>子组>单个项目--最终用户需要定义和维护层次结构,然后正确地将每个库存项分类到每个类别中。这是一项重要的工作。
你没问过维护和更新的事。您询问了如何显示大量数据,用户只需选择一条记录即可。
但是,为了回答这个问题,我要再次重申,由于所有数据集都有它们的自然类别,所以始终可以通过编程方式找到这些类别,以便自动发生。在客户列表的情况下,您将拥有名称、地址、电话号码、职务类型、联系频率、重要性等属性,通过这些属性,软件可以自动将客户划分为层次结构。世界上每个客户端管理程序都使用某种类型的自动分类将数据分解为可管理的块。
你总是可以选择只创建一个搜索,但同样,复杂的搜索很难在手机上输入。为了解决这个问题,你可以使用一些创造性的搜索建筑。例如,您可以让用户在名字和姓氏的第一个字母中输入,然后搜索以生成一个可管理的大小列表。
发布于 2010-02-11 21:14:45
你这样做,就像在桌面上或者在Web应用程序上一样:搜索。让他们搜索部分名称或其他标准,并显示匹配。对于库存物品,可以搜索项目代码或名称或类别。对于客户端,可以搜索部分名称或客户代码或城市。
发布于 2010-02-11 18:48:29
也许使用过滤器是一个很好的选择?当然,这要视情况而定,但这可能会有所帮助。
关于制作一个好过滤器的信息:How to dynamically update a ListView on Android
https://stackoverflow.com/questions/2246781
复制相似问题