【发布时间】:2014-01-22 18:40:30
【问题描述】:
我正在使用GridView 和ViewPager 构建一个图库应用。我从 JSON 获取图像 URL。我已经让 GridView 正确显示了图像,现在我将继续使用 ViewPager。我认为我需要做的是为 ViewPager 适配器生成图像 URL 的字符串数组。在 GridView Activity 中,我创建了一个 HashMap,其中存储了 id、URL 和图像描述字符串。我现在的问题是:是否可以通过从 HashMap 中检索所有存储的 URL 字符串来生成字符串数组?我需要的是 HashMap:
public static final String[] imagesStr = new String[] {
"http://www.mysite/images/building0001.jpg",
"http://www.mysite/images/building00011.jpg",
"http://www.mysite/images/building0010.jpg" };
这是我生成 HashMap 的方式:
@Override
protected Void doInBackground(Void... params) {
// Retrieve JSON Objects from the given URL address
galleryArrList = new ArrayList<HashMap<String, String>>();
jsonobject = JIJSONfunctions.getJSONfromURL(urlPathStr);
try {
// Locate the array name in JSON
JSArrGallery = jsonobject.getJSONArray("gallery");
for (int i = 0; i < JSArrGallery.length(); i++) {
JSONObject galleryJO = JSArrGallery.getJSONObject(i);
idStr = galleryJO.getString(TAG_ID);
urlStr = galleryJO.getString(TAG_URL);
descrStr = galleryJO.getString(TAG_DESCR);
// creating new HashMap
HashMap<String, String> map = new HashMap<String,String>();
// adding each child node to HashMap key => value
map.put(TAG_ID, idStr);
map.put(TAG_URL, urlStr);
map.put(TAG_DESCR, descrStr);
galleryArrList.add(map);
}
} catch (JSONException e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return null;
}
我有点不清楚 HashMap 的工作原理,但我假设代码正在通过 JSON 数组并将每个 URL 字符串拉出并将其存储在 HashMap 中,对吧?那么现在我可以提取所有收集的 URL 字符串并用它们创建一个字符串数组吗?我该怎么做?
【问题讨论】:
-
您可以使用列表本身
String url = galleryArrList.get(0).get(TAG_URL);