Сделайте AdapterArray IntArray, потому что я не могу отправить массив адаптеров другому действию.
Я создаю гоночный таймер в Android Studio Java, и я сохранил свои данные о гонке (пример: время всех поворотов) в адаптере массива. Но когда я пытаюсь отправить его другому Activity, функция не принимает ArrayAdapter, поэтому я создал функцию для превращения ArrayAdapter в IntArray, проблема в том, что всякий раз, когда я запускаю эту функцию, программа вылетает. Я ищу ответ на эту проблему, исправляя свой код или делая совершенно другой, если нужно.
public int [] AdapterToInt (адаптер ArrayAdapter) {
int[] a = new int[adapter.getCount()];
for (int i = 0; i < adapter.getCount(); i++)
{
a[i] = Integer.valueOf(adapter.getItem(i));
}
return a;
}
public void onButtonClickSaveTimes (Просмотр представления) {
int[] array;
array = AdapterToInt(adapter1);
TextView textoexemplo = (TextView) findViewById(R.id.textViewhorario);
Intent myIntent = new Intent(getBaseContext(), Main5Activity.class);
myIntent.putExtra("car1", AdapterToInt(adapter1));
myIntent.putExtra("car2", AdapterToInt(adapter2));
myIntent.putExtra("car3", AdapterToInt(adapter3));
myIntent.putExtra("car4", AdapterToInt(adapter4));
myIntent.putExtra("car5", AdapterToInt(adapter5));
startActivity(myIntent);
}
Я ожидаю, что он отправит ArrayAdapter другому действию или, по крайней мере, заставит мою функцию работать и превратит ArrayAdapter в ArrayInt, чтобы я мог отправить его через myIntent.putExtra, но фактический результат - сбой приложения.




Вероятно, проблема здесь:
a[i] = Integer.valueOf(adapter.getItem(i));
Поскольку adapater.getItem(i) возвращает объект, который вы, вероятно, не сможете преобразовать в целое число, у вас, вероятно, возникнут проблемы.
Вместо этого вы можете использовать adapter.getItemId(i), который вернет long вместо объекта.
Однако эта идея также не кажется хорошей, поэтому я бы попытался посмотреть, работает ли что-нибудь из здесь для вас.
И если ничего из этого не работает, вероятно, имеет смысл просто отправить все данные, которые вам нужны, чтобы реконструировать ваш ArrayAdapter для другого действия.
Эта ссылка также может помочь: Как передать пользовательский объект ArrayAdapter между намерениями с сериализацией
Где вылетает? Есть ли трассировка стека?