У меня есть кнопка, и в onClick () код возвращает результат.
Моя проблема в том, что при первом нажатии на эту кнопку результат null
при втором щелчке возвращается true.
Не знаю почему.
Это код:
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, ur, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
jsonArray = response.getString("referentiel");
Log.d(TAG, "onResponse() returned: kkkkkk" + jsonArray);
//for (int i = 0; i < jsonArray.length(); i++) {
//JSONObject employee = jsonArray.getJSONObject(i);
String firstName = jsonArray.toString();
// Toast.makeText(ActivityUserProfile.this, "ok"+firstName, Toast.LENGTH_LONG).show();
// int age = employee.getInt("age");
// String mail = employee.getString("mail");
// mTextViewResult.append(jsonArray + ", " +"\n\n");
//}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
mQueue.add(request);
Toast.makeText(MainActivity.this, "ok"+jsonArray, Toast.LENGTH_LONG).show();
}
}
результат - переменная jsonArray
возврат находится в Toast.makeText (MainActivity.this, "ok" + jsonArray, Toast.LENGTH_LONG) .show ();
Пожалуйста, используйте точки и запятые! Трудно прочитать ваш вопрос!




JsonObjectRequest - это асинхронный запрос. он будет работать в другом потоке, кроме основного потока. Так что используйте ответ внутри onResponse(). Т.е. переместите тост в onResponse(). Дальнейшую обработку данных выполняйте внутри методов обратного вызова запроса. Обратные вызовы Volley выполняются в основном потоке, поэтому вы можете напрямую обращаться к элементам пользовательского интерфейса в методах обратного вызова.
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, ur, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
// Handle Response here
jsonArray = response.getString("referentiel");
Toast.makeText(MainActivity.this, "ok" + jsonArray, Toast.LENGTH_LONG).show();
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
// handle error here
}
});
mQueue.add(request);
Я не вижу оператора возврата, думаю, нам нужно больше кода