SortedList在神马笔记中的应用

2024-02-01 09:10

本文主要是介绍SortedList在神马笔记中的应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SortedList在神马笔记中的应用

    • 一、界面的层次结构
    • 二、实现效果
    • 三、代码层次结构
    • 四、职责定义
    • 五、下载地址

一、界面的层次结构

神马笔记有5个界面用于展示笔记/文件夹内容,分别为

  1. 文件夹(相同文件夹内的笔记及子文件夹)
  2. 搜索(同一关键子的笔记及文件夹)
  3. 最近项目(最近访问的笔记,不包括文件夹)
  4. 最近删除(最近删除的笔记及文件夹)
  5. 标签(同一标签的笔记及文件夹)

笔记及文件夹在神马笔记中统一称为记录,一条记录即表示一条笔记或者一个文件夹。记录支持5种排序方式,分别为:

  1. 名称
  2. 创建日期
  3. 修改日期(仅用于最近项目)
  4. 大小
  5. 标签

基于对笔记/文件夹排序的需求,使用SortedList作为记录的容器再合适不过。我们只需要提供记录的比较结果,`SortedList即可完成排序。

二、实现效果

三、代码层次结构

首先,存在5个具体的功能界面,定义5个具体的Fragment

  1. 文件夹(FolderRecordFragment)
  2. 搜索(SearchRecordFragment)
  3. 最近项目(RecentRecordFragment)
  4. 最近删除(TrashRecordFragment)
  5. 标签(TagRecordFragment)

其次,5个具体的功能界面使用了2种不同的排序方式,为2种排序方式定义2个Fragment

  1. 名称方式(NamedRecordListFragment):名称、创建日期、大小、标签
  2. 标签方式(TabbedRecordListFragment):名称、修改日期

再来,无论何种排序方式,都需要显示笔记/文件夹的列表,定义基类的Fragment

  1. BaseRecordListFragment

最终的类层次结构为

BaseRecordListFragment

|---- NamedRecordListFragment

|    |---- FolderRecordFragment
|    |    |---- TrashRecordFragment
|    |---- SearchRecordFragment
|    |---- TagRecordFragment
|---- TabbedRecordListFragment
    |---- RecentRecordFragment

其中*RecordListFragment为抽象类,不能进行实例化。

四、职责定义

  • 核心功能

    1. BaseRecordListFragment

    多级文件夹管理的核心功能类,所有记录的操作及显示均由BaseRecordListFragment来完成,其重要程度及复杂度与编辑器的核心功能类ComposeArticleFragment不相上下。

  • 排序功能

    1. NamedRecordListFragment
    2. TabbedRecordListFragment

    这2个类提供了2种不同的排序方式,Named支持4种排序方式,Tabbed支持2种排序方式,并且排序的交互方式也不相同,故而定义2个不同的Fragment来实现。

  • 具体功能

    1. FolderRecordFragment
    2. SearchRecordFragment
    3. RecentRecordFragment
    4. TrashRecordFragment
    5. TagRecordFragment

    其中,Trash继承自Folder,因为设计上Trash是一个特殊的文件夹,是Folder的一个特例,故而继承之。这5个具体的类,为BaseRecordListFragment提供具体的数据,及响应BaseRecordListFragment的操作。

五、下载地址

神马笔记最新版本:【whatsnote_lastest.apk】

这篇关于SortedList在神马笔记中的应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/666784

相关文章

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布

Python标准库之数据压缩和存档的应用详解

《Python标准库之数据压缩和存档的应用详解》在数据处理与存储领域,压缩和存档是提升效率的关键技术,Python标准库提供了一套完整的工具链,下面小编就来和大家简单介绍一下吧... 目录一、核心模块架构与设计哲学二、关键模块深度解析1.tarfile:专业级归档工具2.zipfile:跨平台归档首选3.

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

深入浅出SpringBoot WebSocket构建实时应用全面指南

《深入浅出SpringBootWebSocket构建实时应用全面指南》WebSocket是一种在单个TCP连接上进行全双工通信的协议,这篇文章主要为大家详细介绍了SpringBoot如何集成WebS... 目录前言为什么需要 WebSocketWebSocket 是什么Spring Boot 如何简化 We

Java Stream流之GroupBy的用法及应用场景

《JavaStream流之GroupBy的用法及应用场景》本教程将详细介绍如何在Java中使用Stream流的groupby方法,包括基本用法和一些常见的实际应用场景,感兴趣的朋友一起看看吧... 目录Java Stream流之GroupBy的用法1. 前言2. 基础概念什么是 GroupBy?Stream

python中列表应用和扩展性实用详解

《python中列表应用和扩展性实用详解》文章介绍了Python列表的核心特性:有序数据集合,用[]定义,元素类型可不同,支持迭代、循环、切片,可执行增删改查、排序、推导式及嵌套操作,是常用的数据处理... 目录1、列表定义2、格式3、列表是可迭代对象4、列表的常见操作总结1、列表定义是处理一组有序项目的

C#中的Converter的具体应用

《C#中的Converter的具体应用》C#中的Converter提供了一种灵活的类型转换机制,本文详细介绍了Converter的基本概念、使用场景,具有一定的参考价值,感兴趣的可以了解一下... 目录Converter的基本概念1. Converter委托2. 使用场景布尔型转换示例示例1:简单的字符串到

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat

PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例

《PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例》词嵌入解决NLP维度灾难,捕捉语义关系,PyTorch的nn.Embedding模块提供灵活实现,支持参数配置、预训练及变长... 目录一、词嵌入(Word Embedding)简介为什么需要词嵌入?二、PyTorch中的nn.Em

Spring Boot3.0新特性全面解析与应用实战

《SpringBoot3.0新特性全面解析与应用实战》SpringBoot3.0作为Spring生态系统的一个重要里程碑,带来了众多令人兴奋的新特性和改进,本文将深入解析SpringBoot3.0的... 目录核心变化概览Java版本要求提升迁移至Jakarta EE重要新特性详解1. Native Ima