Как использовать персонализированный спиннер с программно созданным массивом строк вместо жестко запрограммированного массива строк в моем файле strings.xml? - PullRequest
0 голосов
/ 26 июля 2011

У меня есть персонализированный счетчик (который использует адаптер, который использует персонализированный XML-файл макета)

Я хочу передать ему массив строк, созданный программно, вместо передачи типичного массива жестко закодированных строкstrings.xml ... но я не могу !!если я попытаюсь передать массив строк, Eclipse скажет мне, что ему нужна ссылка на элемент из ресурсов (массив жестко закодированных строк из strings.xml)

также я попытался использовать ответ этого другогопуть: Android: создание счетчика программно из массива

, но этот способ не сработал для меня, потому что этот способ должен использовать макет по умолчанию android.R.layout.simple_spinner_item, и я не буду с этим работатьмакет, мне нужно использовать мой персонализированный макет (R.layout.spinner_layout), и этот метод не позволил мне использовать персонализированные макеты для счетчика

это мой код:

String[] teams=(String[])Primera.getTeams().toArray();

ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.teams_array, R.layout.spinner_layout);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
TeamsSpinner.setAdapter(adapter);
TeamsSpinner.setOnItemSelectedListener(new MyOnItemSelectedListener());

мне нужно изменить R.array.teams_array на teams, но я не могу, потому что причина, по которой я сказал несколько строк

, может кто-нибудь мне помочь?

спасибо

1 Ответ

2 голосов
/ 26 июля 2011

Вам не нужно использовать android.R.layout.spinner_item и т. Д., Как то, что используется в вопросе, на который вы ссылаетесь.Вы можете использовать свой собственный макет XML для элемента прядильщика.

Вам не нужно использовать ArrayAdapter.createFromResource(), вы можете использовать:

ArrayAdapter adapter = new ArrayAdapter(this, R.id.your_custom_spinner_item, teams);
...