Я хочу получить значения с карты Hash. Когда я попытался отобразить размер Hashmap в TextView, размер изменяется на моем экране. Любые идеи почему? Есть ли какой-либо другой способ вместо использования Hashmap для хранения JSONArray, поэтому его легче получить?Размер Hashmap не является постоянным
public void updateJSONdata() {
cafebartablesList = new ArrayList<HashMap<String, Integer>>();
JSONParser jParser = new JSONParser();
JSONObject json = jParser.getJSONFromUrl(READ_COMMENTS_URL);
try {
cafebartables = json.getJSONArray(TAG_POSTS);
for (int i = 0; i < cafebartables.length(); i++) {
LoadMap ld = new LoadMap();
ld.execute();
JSONObject c =cafebartables.getJSONObject(i);
int tableId = c.getInt(TAG_TABLE_ID);
int tableMarginLeft = c.getInt(TAG_MARGIN_LEFT);
int tableMarginTop = c.getInt(TAG_MARGIN_TOP);
int isFree = c.getInt(TAG_ISFREE);
map = new HashMap<String, Integer>();
map.put(TAG_TABLE_ID, tableId);
map.put(TAG_MARGIN_LEFT, tableMarginLeft);
map.put(TAG_MARGIN_TOP, tableMarginTop);
map.put(TAG_ISFREE, isFree);
cafebartablesList.add(map);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
public void printMap() {
mapcounter ++;
length_txt =(TextView)findViewById(R.id.length_txt);
length_txt.setText("the size is " +cafebartablesList.size());
}
public class LoadMap extends AsyncTask<Void, Void, Boolean> {
@Override
protected Boolean doInBackground(Void... arg0) {
updateJSONdata();
return null;
}
@Override
protected void onPostExecute(Boolean result) {
super.onPostExecute(result);
printMap();
}
}
Вы отображая размер списка, который, сколько хеш-карты у вас есть, не сколько элементов находится в хэш-карте. –
Проблемы с пониманием вашего кода. Вы рекурсивно называете свой код updateJSONdata внутри асинтезы? Вы пробовали использовать gson вместо typeadapter? –
В каком порядке я могу отображать количество элементов, которые содержит хэш-карту и извлекать ее по одному? – Vasilis13