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