【问题标题】:android: How to get item's attributes from its string-array in strings.xmlandroid:如何从strings.xml中的字符串数组中获取项目的属性
【发布时间】:2011-11-30 11:31:44
【问题描述】:

我爸爸喜欢看他的电影,而且他有很多电影。他把他的光盘放在几个活页夹里,但根本没有编目系统。

我想我会做一个安卓应用来帮助他找到他们

所以我认为 id 将信息存储在 strings.xml 中的字符串数组中

        <?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, MovieFinderActivity!</string>
    <string name="app_name">MovieFinder</string>
    <string name="movie_prompt">Choose Movie</string>
    <string-array name="all_movies_array">
        <item binder="1" page="1">Star Wars Episode 1: The Phantom Menace</item>
        <item binder="1" page="1">Star Wars Episode 2: Attack of the Clones</item>
        <item binder="1" page="1">Star Wars Episode 3: Revenge of the Sith</item>
        <item binder="1" page="1">Star Wars Episode 4: A New Hope</item>
        <item binder="1" page="2">Star Wars Episode 5: The Empire Strikes Back</item>
        <item binder="1" page="2">Star Wars Episode 6: Return of the Jedi</item>
        <item binder="1" page="2">Dr Zhivago Side A</item>
        <item binder="1" page="2">Dr Zhivago Side B</item>    

    </string-array>

</resources>

然后我就这样做了

    movie_spinner = (Spinner) findViewById(R.id.search_movie_spinner);
    movie_spinner.setAdapter(adapter2);
    movie_spinner.setOnItemSelectedListener((OnItemSelectedListener) this);

这里会调用它

    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
        long arg3) {

    //movie_title is a textview
    movie_title.setText( movie_spinner.getSelectedItem() + "");

}

所以每当在微调器中选择一部电影时,movie_title 的 TextView 就会更改为电影的名称

我想知道的是如何从节点item

中获取binder和page的属性

【问题讨论】:

  • 创建一个 xml 文件。解析它。

标签: android xml spinner


【解决方案1】:

AFAIK,您无法获取资源字符串数组的属性值。

我的看法是你可以有以下选择

  1. 如 sherif 所述,使用您的数据创建一个 xml 文件。 例如,

    <movies>
       <item binder="1" page="1">Star Wars Episode 1: The Phantom Menace</item>
       <item binder="1" page="1">Star Wars Episode 2: Attack of the Clones</item>
       <item binder="1" page="1">Star Wars Episode 3: Revenge of the Sith</item>
       <item binder="1" page="1">Star Wars Episode 4: A New Hope</item>
       <item binder="1" page="2">Star Wars Episode 5: The Empire Strikes Back</item>
    </movies>
    

    您可以使用任何可用的解析器(如 DOM、SAX)来解析它并创建您选择的数组列表或对象。

  2. 创建 json 数据而不是 xml,并使用 GSON 解析为可用的对象。

【讨论】:

    猜你喜欢
    • 2016-12-02
    • 2016-10-23
    • 2021-06-25
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多