android - 多维数组

标签 android xml arrays xpath

我有 2 个相互关联的项目需要单独访问。一本书的标题和它有多少页。我已经为标题制作了一个数组,但是将那本书的页数链接到该标题的最佳方法是什么?

我正在考虑以下内容,但我不知道如何访问页数。

<string-array name="books">
    <item pages="428">"book1"</item>
    <item pages="599">"book2"</item>
    <item pages="204">"book3"</item>
</string-array>

最佳答案

你可以选择 XPath但恕我直言,这太过分了。

对我来说,听起来您需要某种 map 来跟踪页面。我个人会避免使用字符串数组(因为我不认为无论如何都可以引用元素的属性)如下:

// create HashMap to write pages to
Map<String, Integer> bookPageMapping = new HashMap<String, Integer>();
bookPageMapping.put("book1", 428);
bookPageMapping.put("book2", 599);
bookPageMapping.put("book3", 204);

您也可以按如下方式将书籍文字放入 strings.xml 中并以这种方式引用它们:

字符串.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">MultiArray</string>
    <string name="book1">book1</string>
    <string name="book2">book2</string>
    <string name="book3">book3</string>
</resources>

然后您将按如下方式在代码中引用文件:

// create HashMap to write pages to
Map<String, Integer> bookPageMapping = new HashMap<String, Integer>();
bookPageMapping.put(getString(R.string.book1), 428);
bookPageMapping.put(getString(R.string.book1), 599);
bookPageMapping.put(getString(R.string.book1), 204);

或者你可以使用字符串数组:

字符串.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">MultiArray</string>
    <string-array name="books">
        <item>book1</item>
        <item>book2</item>
        <item>book3</item>
    </string-array>
</resources>

然后相应地填充 HashMap :

// get the String array from resources
Resources res = getResources();
String[] books = res.getStringArray(R.array.books);

// create HashMap to write pages to
Map<String, Integer> bookPageMapping = new HashMap<String, Integer>();
bookPageMapping.put(books[0], 428);
bookPageMapping.put(books[1], 599);
bookPageMapping.put(books[2], 204);

有关更多信息,请访问 Android 开发者网站并搜索字符串资源或 map 。我会直接发布这些链接,但由于我是新用户,我不能发布超过 1 个超链接。顺便说一句,这是我的第一篇 Stack Overflow 帖子,所以要温柔 :)

关于android - 多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3763585/

相关文章:

javascript - 从 create react native 弹出后在 android studio 中运行 react native 项目的步骤

android - RxJava2 相对于 AsyncTask 的优势

xml - XPath 能否仅返回具有 X 的子节点的节点?

javascript - 如何检索输入中的值?

c - 将局部静态数组传递给函数

c# - 查找指向 native 字节数组的不安全字节*的长度 C#

Android Listview 项目重复添加具有不同数据的新项目

android - 如何在 Android 中使用警报管理器启动服务?

xml - 是字符串或数字类型的变量

java - 通过网络解析大型 XML 文件