1

我想问一个关于在 Android 中存储导航结构远离 java 代码的正确方法的问题。我想将应用程序结构存储在资源中的 xml 文件中。该程序仅适用于生成的列表。

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

所以我决定使用一种enum类型。这并不能消除在 XML 中输入错误值的可能性,但它消除了在代码本身中出现拼写错误的可能性。每个元素调用一个方法(带有 switch-case),检查按下的是什么类型的项目,如果它是枚举,APP_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 的应用程序。

4

0 回答 0