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