#android #json #arraylist
#Android #json #arraylist
Вопрос:
Хорошо, я сделаю все возможное, чтобы объяснить это.
Я создал поток для генерации Arraylist из URL-адреса JSON. Я хочу вернуть это в мой основной поток. Я рассматривал возможность использования глобального массива, но, видимо, это плохая практика.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LoadJson generate = new LoadJson();
GenerateDataset.thread.start();
}
Как вы можете видеть, я вызываю свой поток запуска в своем классе Generate, который начинает создавать мой Object Arraylist. Как бы мне лучше всего вернуть этот набор данных в мой исходный поток.
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
Arraylist<elements> temp = Start(); //<----- this list is what I want to return
} catch (Exception e) {
e.printStackTrace();
}
}
Ответ №1:
Вы можете сохранить MutableLiveData<Arraylist<elements>>
в своем классе GenerateDataset, к которому поток будет иметь доступ.
В вашем MainActivity обратите внимание на LiveData и обновите пользовательский интерфейс.