public class AllPrices {
private String price;
public AllPrices(Context context, String userLevel) {
getPricesForAmortizators(context, userLevel);
}
public void getPricesForAmortizators(Context context, final String userLevel){
//final String number = artNumber.replaceAll("[^A-Za-z0-9]", ""); // удалится все кроме букв и цифр;
final String number = "82501004";
final StringRequest stringRequest = new StringRequest(Request.Method.POST, Config.PRICE_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response){
try {
JSONObject src = new JSONObject(response);
JSONArray prices = src.getJSONArray("prices");
setPrice(getAmortPrices(prices));
System.out.println("1111111111111111111" + " " + getPrice());
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}) {
@Override
protected Map<String, String> getParams()
{
Map<String, String> params = new HashMap<>();
params.put("number", number);
params.put("userLevel", userLevel);
return params;
}
};
RequestQueue queue = VolleyRequestHelper.getInstance(context).getRequestQueue();
VolleyRequestHelper.getInstance(context).addToRequestQueue(stringRequest);
}
private String getAmortPrices(JSONArray prices){
try {
return prices.getJSONObject(0).getString("price");
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
}
что я делаю не так, не могу получить в другом классе вот это
price_euro.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (user.getLevel().length() > 2){
AllPrices allprice = new AllPrices(context, user.getLevel());
String price = allprice.getPrice();}
получаю NULL
ответ приходит сто процентов в AllPrices, проверил элементарным System.out.println("1111111111111111111" + " " + getPrice());
, но я его не вижу в другом классе
Загрузка данных из сервера происходит в другом потоке, поэтому вам нужно написать callback для получение результата при успешном завершении запроса
На пример
interface Callback {
void onDone(AllPrices prices);
}
void getPrices(Callback callback) {
.....
//Вставьте в параметр то что вы получили
callback(...)
}
Вобщем решил я поступить так... Всеравно мне нужен результат этого запроса вывести в Toast.. поэтому я перенёс реализацию его в onResponce
price_euro.setOnClickListener(v -> {
if (user.getLevel().length() > 2){
AllPrices ap = new AllPrices();
ap.getPricesForAmortizators(context, user.getLevel(), art_number.getText().toString());
}
});
а остальное в другом классе. Всё работает как и хотел!
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Использую библиотеку ZXing для распознавания кодовПри сканировании экран переворачивается в горизонтальный
Помогите решить задачкуЕсть рабочий код шифра Цезаря, есть написанный интерфейс, не могу все это совместить в одно
Я только пробую работать с RMIЗапускаю клиент и сервер на разных компьютерах
Мне нужно построить матрицу DSM-матрицу для Jar файлов (DSMForJars)