android:如何从strings.xml中的字符串数组中获取item的属性

时间:2011-10-04 07:55:23

标签: android xml spinner

我爸爸喜欢看他的电影,他有很多。他将光盘放在几个粘合剂中,但根本没有编目系统。

我以为我会制作一个Android应用来帮助他找到它们

所以我认为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就会变为电影名称

我想知道的是如何从节点中检索活页夹和页面的属性

1 个答案:

答案 0 :(得分:0)

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)来解析它并创建您选择的arraylist或对象。

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