热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在ListView中使用SimpleAdapter

在上一篇博客中介绍了在ListView中使用ArrayAdapter,使用ArrayAdapter存在一个弊端,只能处理一种数据,在上一篇

在上一篇博客中介绍了在ListView中使用 ArrayAdapter,使用ArrayAdapter存在一个弊端,只能处理一种数据,在上一篇博客中,只能处理好友的姓名,不能处理好友的图片,为了既可以处理好友的姓名又可以处理好友的图片,ListView中提供了一个SimpleAdapter,使用SimpleAdapter既可以处理好友的姓名,也可以处理好友的图片,实现的效果如下



首先使用Android Studio创建一个Android工程

1、在drawable文件夹添加十张图片,作为人物的头像



修改activity_main.xml文件



3、新建一个item_listview.xml文件作为ListView中的条目所在的布局文件




4、新建一个Person类,用于处理好友的信息

package example.administrator.arrayadaptedemo;public class Person {private String name;private int imageId;public Person(String name, int imageId) {this.name = name;this.imageId = imageId;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getImageId() {return imageId;}public void setImageId(int imageId) {this.imageId = imageId;}
}


最后修改MainActivity.java文件

package example.administrator.arrayadaptedemo;import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//创建集合List personList = new ArrayList();//创建person对象Person person1 = new Person("刘得意", R.drawable.man1);Person person2 = new Person("王锐", R.drawable.man2);Person person3 = new Person("何煜中", R.drawable.man3);Person person4 = new Person("王磊", R.drawable.man4);Person person5 = new Person("冯松", R.drawable.man5);Person person6 = new Person("裴培", R.drawable.man6);Person person7 = new Person("马骁", R.drawable.man7);Person person8 = new Person("马婧", R.drawable.man8);Person person9 = new Person("周俊升", R.drawable.man9);Person person10 = new Person("贺祺", R.drawable.man10);//将Person对象添加到集合中personList.add(person1);personList.add(person2);personList.add(person3);personList.add(person4);personList.add(person5);personList.add(person6);personList.add(person7);personList.add(person8);personList.add(person9);personList.add(person10);//获得布局文件上的ListView控件ListView lv = (ListView) findViewById(R.id.lv);//集合中每个元素都包含ListView条目需要的所有数据// 该案例中每个条目需要一个字符串和一个整型,所以使用一个map来封装这两种数据List > data = new ArrayList >();for(Person p : personList) {Map map = new HashMap ();map.put("name", p.getName());map.put("photo", p.getImageId());data.add(map);}//给ListView设置适配器//第一个参数:上下文//第二个参数:用于设置好友的头像和名字//第三个参数:布局文件的资源id//第四个参数:设置朋友的头像和名字属性//第五个参数:设置朋友的头像和名字的资源idlv.setAdapter(new SimpleAdapter(this,data,R.layout.item_listview,new String[]{"photo", "name"},new int[]{R.id.iv_photo, R.id.tv_name}));}
}


推荐阅读
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 这两天用到了ListView,写下遇到的一些问题。首先是ListView本身与子控件的焦点问题,比如我这里子控件用到了Button,在需要ListView中的根布局属性上加上下面的这一个属性:and ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 在一对一直播源码使用过程中,有时会出现软键盘切换闪屏问题,就是当切换表情的时候屏幕会跳动,因此要对一对一直播源码表情面板无缝切换进行优化。 ... [详细]
  • 开发笔记:(002)spring容器中bean初始化销毁时执行的方法及其3种实现方式
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了(002)spring容器中bean初始化销毁时执行的方法及其3种实现方式相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 2021年最详细的Android屏幕适配方案汇总
    1Android屏幕适配的度量单位和相关概念建议在阅读本文章之前,可以先阅读快乐李同学写的文章《Android屏幕适配的度量单位和相关概念》,这篇文章 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • 今天就跟大家聊聊有关怎么在Android应用中实现一个换肤功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根 ... [详细]
  • 03Spring使用注解方式注入
    基于注解的DI注入1.导包环境搭建:导入aop包(spring-aop-4.1.6.RELEASE.jar)2.创建类3.创建spring.xml配置文件(必须在src目录下)该配 ... [详细]
  • 今天终于成功使用ReactNative打包APK成功,IOS暂时没有 ... [详细]
author-avatar
小旭zZ
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有