У меня есть данные JSON, которые я преобразовал в JSONArray
. Я выполнил это преобразование во внутреннем классе, который распространяется AsyncTask
.Как передать данные из класса Async в основной класс активности
Теперь у меня есть данные, которые содержат Images
и их Titles
. Я хочу создать Loop и создать ImageView
динамически.
Проблема, с которой я столкнулся, заключается в том, что мои данные находятся во внутреннем классе и в методе doInBackground()
, и все это; i.e: ImageView
Мне нужно создать в классе Outer и в методе onCreate()
.
Я не могу понять, как использовать jsonArray
, который я создал в своем InnerClass
в моем внешнем классе.
Внутренний класс:
общественного класса NewsService расширяет AsyncTask {
@Override
protected JSONArray doInBackground(String... params) {
URL url = null;
try {
//All JSON to JSONArray conversion code goes here
//..
JSONArray jsonArray = new JSONArray(jsonString);
return jsonArray;
Основная деятельность
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
NewsService newsService = new NewsService();
newsService.execute();
//I need to use `jsonArray` in this part of my code
Вы хотите передать JSONArray возвращаемого doInBackground в MainActivity? –
Это может вам помочь: http://stackoverflow.com/questions/14827532/waiting-till-the-async-task-finish-its-work – Pablo
Вы не можете использовать jsonArray в этой части кода. Вы должны использовать его в onPostExecute, а не –