android错误,当我尝试将包含Map <string,string =“”>的Array放入String中以便我自动完成</string,>

时间:2012-03-09 20:06:37

标签: android map arraylist

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;

//i fill the map and the array list in a while()

mapa.put(numberz,nnn);
c_tmp.add(mapa);

并且在尝试填充下一行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);
txtPhoneName.setAdapter(adapter);

///我写的那行是错的(因为我是从ArrayList<String>复制的)

2 个答案:

答案 0 :(得分:0)

我建议您使用HashMap<String,String>数据类型,因为地图具有为values

添加unique key的属性

完成将数据存储到hashmap后,您可以使用Iterator进行迭代,并从HashMap获取所有密钥,从而获取所有密钥Values那些存储在ArrayList中,然后将其转换为String Array的密钥对您来说不是问题。

答案 1 :(得分:0)

您应该首先尝试使用地图,然后在初始化时使用哈希地图,并使用简单的适配器

mAdapter = new SimpleAdapter(this, peopleList, R.layout.row ,new String[] 
           { "Name", "Phone"  }, new int[] { R.id.text1, R.id.text2  });
txtPhoneName.setAdapter(mAdapter);

但是在另一个函数之前填充人员列表......