Извините за такие глупые вопросы, но уже сколько бьюсь над этим и ничего сделать не могу...
Код: Выделить всё
package com.example.newtestapp;
import android.content.Context;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
public class Api {
public final String ATTRIBUTE_NAME_TITLE = "title";
public final String ATTRIBUTE_NAME_DATE = "date";
public final String ATTRIBUTE_NAME_IMAGE = "img";
private RequestQueue queue;
ArrayList<Map<String, Object>> data;
public Api (Context context) {
queue = Volley.newRequestQueue(context);
}
public ArrayList<Map<String, Object>> getPosts() {
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, "http://indpre.ru/test/", null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray posts = response.getJSONArray("posts");
data = new ArrayList<>(posts.length());
Map<String, Object> m;
int img = R.drawable.ic_launcher;
for (int i = 0; i < posts.length(); i++) {
JSONObject post = posts.getJSONObject(i);
m = new HashMap<>();
m.put(ATTRIBUTE_NAME_IMAGE, img);
m.put(ATTRIBUTE_NAME_TITLE, post.getString("title"));
m.put(ATTRIBUTE_NAME_DATE, post.getString("data"));
data.add(m);
// Тут все хорошо
System.out.println(data);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
queue.add(jsonObjectRequest);
// а тут уже null
return data;
}
}