android: Как получить атрибуты элемента из его строкового массива в strings.xml - PullRequest
4 голосов
/ 04 октября 2011

Мой папа любит смотреть свои фильмы, и у него их много.Он хранит свои диски в нескольких папках, но система каталогизации отсутствует вообще.

Я думал, что сделаю приложение для 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() + "");

}

, поэтому всякий раз, когда фильм выбирается в счетчике, TextView для movie_title меняется на название фильма

Что я хочу знать, так это как извлечь атрибуты подшивки и страницы из узла item

1 Ответ

0 голосов
/ 04 октября 2011

AFAIK, вы не можете получить значения атрибутов для массива строк ресурсов.

На мой взгляд, у вас могут быть следующие опции

  1. Создайте 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 для анализа пригодного к использованию объекта.

...