Проблемы статического массива и спиннера - PullRequest
0 голосов
/ 02 ноября 2011
public String[] mArrayList = {" title", "sex", "name", "sex","fff","eee","iii"};            

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
    this,**mArrayList**,R.layout.sq,

    android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);

Я хочу добавить значение к счетчику, используя mArrayList array.but ОШИБКА, как показано ниже.

Метод createFromResource (Context, int, int) в типе ArrayAdapter не применим для аргументов (sq, String [], int, int).

Что я делаю не так?

Как я могу получить доступ к статическому массиву из другого Java-класса?

Если бы вы работали с примерами, это была бы реальная помощь!

Ответы [ 3 ]

1 голос
/ 02 ноября 2011

createFromResource ожидает идентификатор ресурса массива из файла values.xml.

<resources>
    <string-array name="mArrayList">
        <item>title</item>
        <item>sex</item>
        <item>name</item>
        <item>fff</item>
        <item>eee</item>
        <item>iii</item>
    </string-array>
</resources>

И вы передаете идентификатор ресурса, который является R.array.mArrayList

ArrayAdapter.createFromResource(this,R.array.mArrayList,android.R.layout.simple_spinner_item);
1 голос
/ 02 ноября 2011

ArrayAdapter.createFromResource() имеет аргументы

  • context Среда приложения.
  • textArrayResId Идентификатор массива для использования в качестве данных источник.
  • textViewResId Идентификатор макета, используемого для создания видов.

Тогда как мы можем передать больше параметров.

Я думаю, что вы хотите создать ArrayAdapter, используя этот конструктор

ArrayAdapter(Context, int, int, T[])

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

1 голос
/ 02 ноября 2011

Хотя это не является частью примера, похоже, что this не является действием / контекстом, но у вас есть некоторый внутренний класс.Это должно быть что-то вроде этого:

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( 
TheActivityName.this, mArrayList, R.layout.sq,android.R.layout.simple_spinner_item);
//^ Your activity name, to make it clear to the compiler that you want "this" object of the activity
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...