Больше контекста было бы полезно, но из того, что я вижу, я предполагаю, что ваш spinnerArray
заполнен асинхронно.Это означает, что spinnerArray
, который вы передаете ArrayAdapter
, пуст и элементы добавляются в него только после вызова onLoadFinished
, но ArrayAdapter
никогда не уведомляется об этом.
Что япредложил бы взять инициализацию ArrayAdapter
и переместить ее в отдельный метод и вызвать его в методе onLoadFinished
.
Пример:
public void setSpinnerData(ArrayList<String> spinnerArray) {
ArrayAdapter<String> adapter = new ArrayAdapter<>(
this, android.R.layout.simple_spinner_item, spinnerArray);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
CategorySpinner.setAdapter(adapter);
CategorySpinner.setSelection(0);
}
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
ArrayList<String> spinnerArray = ArrayList();
if (data.moveToFirst()) {
do {
int categoryNameColumnIndex = data.getColumnIndex(CategoryBaseColumns.CATEGORY_NAME);
spinnerArray.add(data.getString(categoryNameColumnIndex));
//Log.e(data.getString(categoryNameColumnIndex))
} while (data.moveToNext());
}
setSpinnerData(spinnerArray);
}