У меня есть метод showTrajects
, в котором я зацикливаю все id
из trajects
, которые у меня есть, пока все хорошо.
Редактировать: Я смотрю, и проблема всегда заключается в получении последнего идентификатора AllPendingTrajects, но почему он не попадает ни в первый, ни во второй? Проблема внутри AllPendingTrajects()
:
public void showTrajects() {
for (indexTrajecte = 0; indexTrajecte < contador; indexTrajecte++) {
AllPendingTrajects();
}
}
public void AllPendingTrajects(){
AsyncHttpClient client = new AsyncHttpClient();
String URL = "http://url.net/api/link1/"+IDTrajecte[indexTrajecte];
client.get(URL,new AsyncHttpResponseHandler() {
@Override
public void onStart() {}
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
JSONObject trajectes = new JSONObject();
String strResponseBody = new String(responseBody);
try {
trajectes = new JSONObject(strResponseBody);
}catch (JSONException e){
Toast.makeText(PendingTrajectRecyclerView.this, "Error", Toast.LENGTH_SHORT).show();
}
try {
JSONArray realitzas = trajectes.getJSONArray("realitzas");
dniTaxista = trajectes.getString("taxistes_dni");
idTraject = Integer.parseInt(trajectes.getString("ID"));
if(DadesTaxista.DNI.equals(dniTaxista)){
showPendingTraject();
}
else {
SeeAllTrajects();
}
}catch (JSONException e){
e.printStackTrace();
}
}
@Override
public void onFailure(int statusCode, cz.msebera.android.httpclient.Header[] headers, byte[] responseBody, Throwable error) {
Log.d("ERROR",""+statusCode);
}
});
}
При вводе в методе SeeAllTrajects()
в логе всегда получаю случайный ID и не знаю что может быть, толку вроде нет, пробовал создать глобальную переменную но безуспешно
public void SeeAllTrajects(){
AsyncHttpClient client = new AsyncHttpClient();
String URL = "http://url.net/api/link2";
client.get(URL,new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
JSONArray trajectesJSON = new JSONArray();
String strResponseBody = new String(responseBody);
try {
trajectesJSON = new JSONArray(strResponseBody);
}catch (JSONException e){
Toast.makeText(PendingTrajectRecyclerView.this, "Error", Toast.LENGTH_SHORT).show();
}
try {
Log.d("ID TRAJECT:","d"+idByTraject);
}
}catch (JSONException e){
e.printStackTrace();
}
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
Log.d("ERROR",""+statusCode);
}
});
}
1 - 2 - 3
, но вы не получите ответ в том же порядке, поскольку запросы являются асинхронными. - person K Neeraj Lal   schedule 29.05.2018