Проблемы со статическим массивом и счетчиком

#android #android-layout

#Android #android-макет

Вопрос:

 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. но отображается ОШИБКА, как показано ниже.

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

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

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

Если у вас есть какие-либо проработанные примеры, это было бы реальной помощью!

Ответ №1:

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

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

Тогда как мы можем передать дополнительные параметры.

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

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

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

Ответ №2:

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

 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
  

Ответ №3:

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);