Я заполняю счетчик, используя ArrayList пользовательских объектов.Спиннер показывает все элементы, которые мне нужны, но проблема заключается в выборе элемента.С фиктивными данными это работает, и выбранный элемент появляется на счетчике после выбора, но он не работает с API.(может быть, проблема состоит в том, чтобы иметь несколько сотен объектов?).
Любая помощь будет принята, поскольку я застрял в ней довольно давно, и многие посты здесь не помогли.
Это мой код для настройки адаптера.
adapter = new ArrayAdapter<RecyclerViewItem>(getApplicationContext(),
android.R.layout.simple_spinner_dropdown_item, coinSelection);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
namesSpinner.setAdapter(adapter);
Это код для анализа JSON для заполнения счетчика.
public void getAddKeyCoins() {
mQueue = Volley.newRequestQueue(this);
String url = "https://min-api.cryptocompare.com/data/all/coinlist";
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONObject arr = response.getJSONObject("Data");
Iterator<String> keys = arr.keys();
int i = 0;
while (keys.hasNext()) {
String keyValue = keys.next();
String coinName = arr.getJSONObject(keyValue).getString("CoinName");
String coinSymbol = arr.getJSONObject(keyValue).getString("Symbol");
String coinImage = arr.getJSONObject(keyValue).getString("ImageUrl");
coinSelection.add(new RecyclerViewItem(coinName, "https://www.cryptocompare.com/" + coinImage, coinSymbol));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.i("ERROR: ", "not working");
}
});
mQueue.add(request);
adapter.notifyDataSetChanged();
}