我在Android上没有多少经验(抱歉我的英语不好)。我很惊讶在树视图中保存最近的访问数据。
Activity1有两个标签:页面和最近。当我在Tab Pages 上单击一个节点(文件夹A)时,它将在另一个Activity上显示该节点的所有子节点,依此类推。
我想在标签最近中显示最近的访问路线,如下所示: 文件夹A - >文件夹A3 - >文件夹A3.3 - > ... - >文件夹 。我怎么能这样做?
我使用了 startActivityForResult 但结果仅在上一个活动完成时才响应。 我还使用 SharedPreference 来保存该访问路线,但这种方式看起来不那么好,并且在最近选项卡中更新路线时需要重新加载。
请给我一些建议和想法,我必须做些什么方法?
非常感谢,感谢您的帮助!
答案 0 :(得分:1)
实际上你面临两个问题:
找到一种存储路径数据并在活动之间共享的方法。
在树形视图中显示所有数据,而无需重新加载最近标签。
这是我的解决方案:
将所有数据保存在内存中。
您可以使用Singleton类来保持数据共享逻辑。
class Singleton {
...
public TreeNode mTopRootNode;
public getTopRootNode() {
if(topRootNode == null) {
mTopRootNode = TreeNode.root();
}
return mTopRootNode;
}
...
}
当用户导航到标签页时创建根节点:
TreeNode child = new TreeNode("Tab");
Singleton.getInstance().getTopRootNode().addChild(child);
当用户导航到其他节点时添加一个节点,让我们说ActivityA:
TreeNode parent = traversalTheTreeAndFindParentByName(ActivityA);
TreeNode child = new TreeNode("ActivityA");
parent.addChild(child);
当用户导航回最近的标签:
时覆盖标签最近活动/片段的onResume。在onResume期间获取树的顶部根节点,然后遍历树并显示它。