У меня есть строковый массив в моем классе, я пытаюсь использовать его в asynctask, но до того, как вы даже можете его запустить, строка в asynctask, где я использую массив, имеет ошибку, говорящую «не может быть разрешена переменная». Мне нужно использовать массив вне asynctask, поэтому я не могу просто сделать массив внутри asynctask.Android, java: как использовать общедоступные массивы в asynctasks?
Когда я наводил на ошибку ошибку, он дал мне два варианта: «Создать поле« myarray »в типе« myclass »или« Создать константу «myarray» в типе «myclass». оба будут избавляться от ошибки, но ни на самом деле не работают, потому что, когда я запускаю программу, я получаю еще одну ошибку, обе скажут «исключение нулевого указателя», но первый вариант даст мне ошибку в момент использования erray in асинхронная задача, второй вариант даст мне ошибку позже в этом процессе, когда другая функция в классе использует ее (функция без асинтеза). Даже если я прокомментирую часть в этой функции, где он использует массив, я все равно получаю исключение из null-указателя, но это происходит во время асинтезы, и я не понимаю, как эта ошибка не возникает, прежде чем я закомментировал функцию который использует массив, потому что это происходит после задачи async.
Я знаю, что это немного затянуто, мне просто нужно знать, как создать массив в классе, а затем использовать его внутри асинтеза, я попытался настроить свой массив как открытый, публичный статический финал и т. ничего не работает. пожалуйста помоги.
мой код невероятно длинный, поэтому я просто покажу несколько вещей ниже, первая строка - это то, как я определил/инициировал свой исходный массив String в своем классе перед onCreate, вторая и третья строки - автоматически сгенерированные параметры которые были заданы, когда я зависал над ошибкой, они находятся в том же порядке, в котором я объяснил их. Я, конечно, оставляю 2 из 3 комментариев, когда я запускаю его.
public String[] divyeild = new String[1000];
public String[] divyield;
public static final String[] divyield = null;
А затем ниже линии, где я использовать массив внутри AsyncTask, «с» из петли.
divyield[c]="anything";