当前位置: 首页 > 知识库问答 >
问题:

CodenameOne中的FilterProxyListModel示例

欧阳鸿德
2023-03-14

由于Codename One支持基本Java对象功能的子集,所以在将数据添加到DefaultListModel之前,我不能使用vector.sort()对其进行排序。因此,在Codename One中寻找其他排序选项时,我找到了FilterProxyListModel。

我找不到如何正确初始化FilterProxyListModel的示例,因为它使用了一个有趣但棘手的“代理”设计模式,我对此并不熟悉。到目前为止,我是如何实现它的,但是当我这样做时,组件不会在模拟器中显示任何元素。这是在“initlistmodel...”中方法从GUI生成器中为我的列表创建:

protected boolean initListModelLearnableTopicsList(List cmp){

    Vector learnableListModel = new Vector;
    //omitting initialization of learnableListModel as a Vector of HashTables with key/value pairs to display
    ...

    FilterProxyListModel<DefaultListModel> fpListModel = new FilterProxyListModel<DefaultListModel>(new DefaultListModel(learnableListModel)) {
        @Override
        protected int compare(Object a, Object b, boolean ascending) {
            //details omitted... uses data in the LearnableListModel to provide sort order
        }

        @Override
        protected boolean check(Object o, String str) {
            //force all results to pass filter since original method fails when a Map object without a key of "name" is in the list
            return true;
        }

    };

    fpListModel.sort(true);

    cmp.setModel(fpListModel);
}

共有1个答案

田俊爽
2023-03-14

您可以使用collections.sort(vector);filter模型用于列表类,我们不太推荐这些类https://www.codenameone.com/blog/evelopy-lists.html

 类似资料:
  • 我是一个代号为一的初学者。当我下载代号One时,有许多“默认”项目。但是在GitHub上还有很多其他的项目。我看了一个代号为一的文章。https://www.codenameone.com/blog/tutorial-gui-builder-autolayout-signin-form-responsive.html。它说,在第一步中,您必须下载codenameone-demos存储库,然后在Ne

  • 我一直在尝试使用log类来捕获一些使用本地存储的奇怪的设备特定故障。当我进入Log类并跟踪代码时,我注意到了一个bug。 同时,这是一个Bug,还是我从用户的角度不理解它的功能?

  • 我想问以下问题:例如,考虑一下我购买专业订阅。过了一段时间(几个月左右)我决定取消我的订阅...那么我已经用CodenameOne开发的应用程序会发生什么呢?它们会继续在谷歌Play商店和/或苹果应用商店上提供吗?我主要关心的是推送通知功能...也就是说,Play Store和/或App Store中已经发布的应用程序是否会保持完整的功能?

  • 当我在我的三星Galaxy双机上运行这个应用程序时(没有在其他设备上测试),它会给我错误/异常