从哈希映射的ArrayList中检索数据始终在Android中显示null

时间:2014-08-02 04:15:49

标签: java android arraylist

我正在尝试从HashMap的arraylist中检索数据,但它始终显示为null。奇怪的是,listview完美地显示了数据。

ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();


 //Count from the server 
 int count = dataCount();

 for (int i = 0; i < dataCount; i++) 
{
HashMap<String, String> map = new HashMap<String, String>();

// adding data to HashMap key => value
map.put(KEY_ID, trackNumber);
map.put(KEY_TITLE, trackTitle);
map.put(KEY_ARTIST, trackArtist);
map.put(KEY_DURATION, trackDuration);
map.put(KEY_THUMB_URL, trackAlbumArt);

// adding HashList to ArrayList
songsList.add(map);

}

我在添加songList后尝试了下面的代码,它始终为null ... :(

  Log.e("Title","1"+songsList.get(0).get("KEY_TITLE"));

在此处设置适配器:

adapter=new LazyAdapter(this, songsList);        
list.setAdapter(adapter);

2 个答案:

答案 0 :(得分:2)

更改此

 Log.e("Title","1"+songsList.get(0).get("KEY_TITLE"));

 Log.e("Title","1"+songsList.get(0).get(KEY_TITLE));

无法通过您发布的代码告知,但我认为KEY_TITLE常量的值实际上是"title"而不是"KEY_TITLE"

答案 1 :(得分:1)

这是因为您尝试使用此

获取数据
 Log.e("Title","1"+songsList.get(0).get("KEY_TITLE"));

但是您可能已经在声明部分中定义了您的字符串。所以上面的代码总是为null。所以只需改变

 Log.e("Title","1"+songsList.get(0).get(KEY_TITLE));