这是我的物品
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;
任何人都可以帮我如何在String []中存储以下行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的source [0];不能存储在[Ljava / lang / String;
类型的目标数组中答案 0 :(得分:1)
您正在尝试将地图展平,这是一组键/值对到平面值列表中。这里的钥匙应该发生什么?您的c_tmp
变量是HashMap
的列表,可能不是您想要的。
如果您只想要地图中的值并且想要丢弃密钥,请执行以下操作:
List<String> strings = yourHashMap.values()
然后,您可以根据需要将List
转换为数组。
答案 1 :(得分:0)
我建议您使用HashMap<String,String>
数据类型,因为地图具有为values
unique key
的属性
完成将数据存储到hashmap
后,您可以使用Iterator
进行迭代,并从HashMap
获取所有密钥,从而获取所有密钥Values
那些存储在ArrayList
中,然后将其转换为String Array
的密钥对您来说不是问题。