我有一个活动,其中包含一个片段(ListView)。此ListView表示文件结构(DMS或文件资源管理器)。当我单击列表项时,列表会更新(adapter.notifyDataSetChanged),依此类推。但是,我如何导航回到上一个列表表示?
答案 0 :(得分:0)
将文件系统视为树可能有助于可视化解决方案。树的每个节点(根之外)都有父引用和子引用(假设节点不是叶子)。如果您已经向下遍历此树,则可能对文件系统的每个元素都有某种形式的子引用,因为当您单击某个项时,您说您的列表会使用您选择的目录中的元素更新自身。如果是这种情况,我还会添加对您来自的父目录的引用,并将其链接到各种各样的后退按钮。假设父引用是唯一的,即目录级别x和级别y具有不同的标识符,那么应该没有问题。
您还可以查看实现一个排序计数器,当您向下遍历树时递增,并在爬升时递减 - 如果文件系统的两个级别具有相同的标识符,这可能会很有用。如果没有代码,可能很难就具体的实现实践提出建议,但主要思想仍然是相同的:您需要为系统中的每个元素保持两种方式的引用(父引用和子引用) - 如果可能的话。
注意:如果您存储'null'(或某些特定值,您可以检查)系统根元素的父引用,或者叶子的'null'子引用,您将知道何时无法提升或进一步下降。这可能允许您在屏幕上发送Toast以通知用户他们的操作无效,甚至在您到达顶部时删除后退按钮。
我希望这有帮助,祝你好运!