微调框未使用自定义对象Android Studio选择项目

时间:2019-02-28 20:00:02

标签: java spinner android-arrayadapter android-spinner

我正在使用“自定义对象”的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();
}

0 个答案:

没有答案