Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 显示包含Hashmap数据的listview_Android_Eclipse_Listview_Hashmap_Android Arrayadapter - Fatal编程技术网

Android 显示包含Hashmap数据的listview

Android 显示包含Hashmap数据的listview,android,eclipse,listview,hashmap,android-arrayadapter,Android,Eclipse,Listview,Hashmap,Android Arrayadapter,我有麻烦了 我有一个HashMap,它是一个全局变量(可用于多个活动)。此hashmap有一个联系人列表,其中键是其邮件地址。。。所以我有两个人的电子邮件地址,完整的联系方式。这是我的密码: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); miAgenda= ne

我有麻烦了

我有一个HashMap,它是一个全局变量(可用于多个活动)。此hashmap有一个联系人列表,其中键是其邮件地址。。。所以我有两个人的电子邮件地址,完整的联系方式。这是我的密码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    miAgenda= new HashMap<String, contactoAgenda>();
    contactoAgenda Eduardo = new contactoAgenda("Eduardo", "c/ Segovia","973", "edufissure@msn.com",true, true, false, false, true,"Laboral");
    miAgenda.put(Eduardo.getMail(),Eduardo);

    contactoAgenda Daniel= new contactoAgenda("Daniel", "c/ Diego Madrazo","92458", "dani@msn.com",true, true, false, false, true,"Familia");
    miAgenda.put(Daniel.getMail(),Daniel);

    contactoAgenda Belen= new contactoAgenda("Belen", "c/ Diego Madrazo","92458", "belen@gmail.com",true, true, false, false, true,"Familia");
    miAgenda.put(Belen.getMail(),Belen);


      Toast.makeText(getApplicationContext(), "hola"+miAgenda.size()+"\n" , Toast.LENGTH_LONG).show();

      ListView lista=(ListView) findViewById(R.id.listaContactos);
         ArrayAdapter<contactoAgenda> adaptador = new ArrayAdapter<contactoAgenda>(this,R.id.editText1, (List<contactoAgenda>) miAgenda.get(contactoAgenda);
         lista.setAdapter(adaptador);
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
miAgenda=newhashmap();
contactoAgenda Eduardo=新的contactoAgenda(“Eduardo”、“c/Segovia”、“973”、”edufissure@msn.com,真的,真的,假的,假的,真的,劳动的;
miAgenda.put(Eduardo.getMail(),Eduardo);
contactoAgenda Daniel=新的contactoAgenda(“Daniel”、“c/Diego Madrazo”、“92458”、”dani@msn.com,真,真,假,假,真,家庭;
miAgenda.put(Daniel.getMail(),Daniel);
contactoAgenda Belen=新的contactoAgenda(“Belen”、“c/Diego Madrazo”、“92458”和belen@gmail.com,真,真,假,假,真,家庭;
miAgenda.put(Belen.getMail(),Belen);
Toast.makeText(getApplicationContext(),“hola”+miAgenda.size()+“\n”,Toast.LENGTH\u LONG.show();
ListView lista=(ListView)findViewById(R.id.listaContactos);
ArrayAdapter adapter=新的ArrayAdapter(this,R.id.editText1,(List)miAgenda.get(contactoAgenda);
lista.setAdapter(Adapter);
问题是,我需要显示包含所有联系人的ListView lista…我在制作适配器时遇到了困难…我找不到任何类似的示例,其中包含由对象字段(联系人的邮件,以及自己的对象所有联系人的所有文件)生成的Hashmap

如果有任何帮助,我将不胜感激。我正在使用api 15。我在这里是一个傻瓜


提前感谢

您只需将
地图
转换为
阵列列表

ArrayAdapter<contactoAgenda> adaptador = new ArrayAdapter<contactoAgenda>(this,R.id.editText1, miAgenda.values();
ArrayAdapter adapter=new ArrayAdapter(this,R.id.editText1,miAgenda.values();

注意,
ArrayAdapter
不知道如何正确显示
contactoAgenda
类类型。您可以覆盖它的
toString()
方法,该方法将控制它在屏幕上的显示方式。更合适的做法是使用
getView()实现自定义适配器实现可以处理<代码> COACTACTIONE 类类型。

:有一个全局哈希图是一个坏主意。相反,考虑有一个内容提供者。事实上,Android立即提供了一个触发器提供者,它看起来像是你想要的东西。我需要一个自定义的联系议程。我必须存储在一个数组中…与contactsProvider无关…感谢您的回复…请您更明确一点并举例说明好吗?我也在contactoAgenda中完成了toSTring方法。现在我不知道如何用所有联系人填充列表视图并显示例如姓名和电子邮件或姓名和电话(在listview的每个项目中显示两个字段)。顺便说一句…它给我错误您给我的指令…似乎hashmap不允许miagenda.values…并且似乎遗漏了一个)。尽管它给我错误。。。。