Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android中导航结构与代码的分离_Android_Design Patterns_Data Structures - Fatal编程技术网

Android中导航结构与代码的分离

Android中导航结构与代码的分离,android,design-patterns,data-structures,Android,Design Patterns,Data Structures,我想问一个问题,关于在Android中如何将导航结构存储在远离java代码的地方。我想将应用程序结构存储在参考资料中的xml文件中。该程序将仅对生成的列表起作用 之前我将自己的XML解析到列表中。每个项的id使用调用方法运行适当的代码。然而,它并不是太快,也不是对程序员友好的 所以我决定使用enum类型。这并不能消除在XML中输入错误值的可能性,但可以消除在代码本身中输入错误的可能性。每个元素调用一个方法(带开关大小写),该方法检查按下的项的类型,如果它是enumAPP\u item,则根据id

我想问一个问题,关于在Android中如何将导航结构存储在远离java代码的地方。我想将应用程序结构存储在参考资料中的xml文件中。该程序将仅对生成的列表起作用

之前我将自己的XML解析到列表中。每个项的id使用调用方法运行适当的代码。然而,它并不是太快,也不是对程序员友好的

所以我决定使用
enum
类型。这并不能消除在XML中输入错误值的可能性,但可以消除在代码本身中输入错误的可能性。每个元素调用一个方法(带开关大小写),该方法检查按下的项的类型,如果它是enum
APP\u item
,则根据id(XML中的另一个神奇字符串)运行相应的程序

示例应用程序结构:

"Main screen"
- Item that runs dialer
- Second item that carries to subscreen
    - Item one
    - Item two

"Second screen"
- Item that runs browser
- Awesome meter
以XML表示:

<app_navigation>
    <screen name="Main screen">
        <item enum="APP_ITEM" id="dialer" name="Item that runs dialer"></item>
        <item name="Second item that carries to subscreen">
            <screen name="Some subscreen">
                <item enum="SOME_ITEM" name="Item one"></item>
                <item enum="SOME_ITEM" name="Item two"></item>
            </screen>
        </item>
    </screen>

    <screen name="Second screen">
        <item enum="APP_ITEM" id="browser" name="Item that runs browser"></item>
        <item enum="SOME_ITEM" name="Awesome meter"></item>
    </screen>
</app_navigation>

有没有更好的方法将导航结构和代码分开?我想支持API 8中的应用程序