Ошибка при попытке превратить Arrayadapter в Int Array

Сделайте 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, но фактический результат - сбой приложения.

Где вылетает? Есть ли трассировка стека?

OldCurmudgeon 10.01.2019 12:33
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
61
1

Ответы 1

Вероятно, проблема здесь:

a[i] = Integer.valueOf(adapter.getItem(i));

Поскольку adapater.getItem(i) возвращает объект, который вы, вероятно, не сможете преобразовать в целое число, у вас, вероятно, возникнут проблемы.

Вместо этого вы можете использовать adapter.getItemId(i), который вернет long вместо объекта.

Однако эта идея также не кажется хорошей, поэтому я бы попытался посмотреть, работает ли что-нибудь из здесь для вас.

И если ничего из этого не работает, вероятно, имеет смысл просто отправить все данные, которые вам нужны, чтобы реконструировать ваш ArrayAdapter для другого действия.

Эта ссылка также может помочь: Как передать пользовательский объект ArrayAdapter между намерениями с сериализацией

Другие вопросы по теме