2012-03-09 67 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对您来说不会有问题。

相关问题