2012-03-09 83 views
1

這裏是我的項目如何在ArrayList中存儲的HashMap然後爲String []

public ArrayList<HashMap<String,String>> c_tmp= new ArrayList<HashMap<String,String>>(); 
public HashMap<String,String>mapa=new HashMap<String, String>(); 
String[] name_Val = null; 

誰能幫助我如何在一個字符串存儲[]以下行name_Val

name_Val = (String[]) c_tmp.toArray(new String[c_tmp.size()]); 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,name_Val); 

我得到此異常 java.lang.ArrayStoreException:類型Ljava/util/HashMap的源[0];不能存儲在類型爲[Ljava/lang/String;

回答

1

您正試圖將地圖展開,該地圖是一組鍵值對。這裏鑰匙應該發生什麼?你的c_tmp變量是HashMap的列表,這可能不是你想要的。

如果你只是想從地圖中的值,你要放棄鍵,這樣做:

List<String> strings = yourHashMap.values() 

然後,您可以轉換List到一個數組,你應該這樣的願望。

+0

我的鑰匙增加值,但它要求做這樣的事情列表串=(名單)hasmymap.values() – denza 2012-03-09 20:36:49

+0

我想你應該修改你的問題,包括一些示例數據,你想要的是什麼結果看起來像是因爲它仍然不清楚你想要達到的目標。 – Argyle 2012-03-09 21:43:42

+0

我想寫下姓名或號碼,並在下面顯示聯繫人 – denza 2012-03-10 10:44:33

0

我的建議是,你可以簡單地用一個HashMap<String,String>數據類型映射具有增加values爲​​

您正在使用的hashmap存儲數據完成後,您可以使用Iterator來的財產迭代並獲取HashMap的所有密鑰,並從所有那些將存儲在ArrayList中的密鑰中獲得Values,然後將其轉換爲您的String Array對您來說不會有問題。

相關問題