Spinner не выбирает элемент с помощью пользовательского объекта Android Studio - PullRequest
0 голосов
/ 28 февраля 2019

Я заполняю счетчик, используя 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();
}
...