Я пытаюсь загрузить мои JSON данные в класс модели представления, который расширяет android View Model, и я не могу получить контекст для очереди запросов
Класс View Model, который расширяется с помощью android модель представления будет использоваться наблюдателем для загрузки списка продуктов в адаптер продукта методом onChanged
Вот мой код класса модели представления
public class ProductViewModel extends AndroidViewModel {
private MutableLiveData<List<Product>> productLiveData;
private List<Product> productList;
private Application application;
private JsonArrayRequest productJsonArrayRequest;
public ProductViewModel(@NonNull Application application) {
super(application);
}
public MutableLiveData<List<Product>> getProductLiveData () {
if(productLiveData == null) {
productLiveData = new MutableLiveData<>();
initialize();
}
return productLiveData;
}
private void initialize(){
productJsonRequest();
productLiveData.setValue(productList);
}
private void productJsonRequest() {
productList = new ArrayList<>();
JsonArrayRequest productsJsonArrayRequest = new JsonArrayRequest(Config.FETCH_PRODUCTS, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
JSONObject jsonObject;
for (int i = 0; i < response.length(); i++) {
try {
jsonObject = response.getJSONObject(i);
Product product = new Product();
product.setId(jsonObject.getInt("id"));
product.setName(jsonObject.getString("name"));
product.setPrice(jsonObject.getDouble("price"));
product.setStock(jsonObject.getInt("stock"));
product.setCategoryId(jsonObject.getInt("categoryId"));
product.setCategory(jsonObject.getString("category"));
product.setPhoto(jsonObject.getString("photo"));
productList.add(product);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
RequestQueue productRequestQueue = Volley.newRequestQueue(this);
productRequestQueue.add(productsJsonArrayRequest);
}
}
Проблема здесь
RequestQueue productRequestQueue = Volley.newRequestQueue(this);