Android的ArrayAdapter、SimpleAdapter、BaseAdapter与ListView的使用

发布时间:2021-09-21 19:35:19

工程目录:

MainActivity


package com.example.demo_four;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
ListView listView;
Button btn1,btn2,btn3;

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

listView=findViewById(R.id.listView);
btn1=findViewById(R.id.btn1);
btn2=findViewById(R.id.btn2);
btn3=findViewById(R.id.btn3);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
}

@Override
public void onClick(View v) {
int se=v.getId();
switch(se){
case R.id.btn1:
List data1=new ArrayList();
data1.add("北京");
data1.add("上海");
data1.add("武汉");
final ArrayAdapter adapter1=new ArrayAdapter(
MainActivity.this,
R.layout.item_layout1,
R.id.tv,
data1
);
listView.setAdapter(adapter1);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {
String mess=adapter1.getItem(position)+"";
Toast.makeText(MainActivity.this, mess, Toast.LENGTH_SHORT).show();
}
});
break;
case R.id.btn2:
List> data2=new ArrayList>();
Map listItem1=new HashMap();
listItem1.put("id",1);
listItem1.put("name","张三");
listItem1.put("salary",5000);
data2.add(listItem1);
Map listItem2=new HashMap();
listItem2.put("id",2);
listItem2.put("name","李四");
listItem2.put("salary",5800);
data2.add(listItem2);
Map listItem3=new HashMap();
listItem3.put("id",3);
listItem3.put("name","王五");
listItem3.put("salary",5500);
data2.add(listItem3);
final SimpleAdapter adapter2=new SimpleAdapter(
MainActivity.this,
data2,
R.layout.item_layout2,
new String[]{
"id",
"name",
"salary"
},
new int[]{
R.id.tv1,
R.id.tv2,
R.id.tv3
}
);
listView.setAdapter(adapter2);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {
Map rec=(Map)adapter2.getItem(position);
String result=" "+position+" "+rec.get("id")+" "+rec.get("name")+" "+rec.get("salary");
Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show();
}
});
break;
case R.id.btn3:
String[] names=new String[]{
"弄玉",
"李清照",
"李白"
};
String[] descs=new String[]{
"一个擅长音乐的女孩",
"一个擅长文学的女性",
"浪漫主义诗人"
};
int[] imageIds=new int[]{
R.drawable.nongyu,
R.drawable.liqingzhao,
R.drawable.libai
};
final List> data3=new ArrayList>();
for(int i=0;i Map listItem=new HashMap();
listItem.put("header",imageIds[i]);
listItem.put("personName",names[i]);
listItem.put("desc",descs[i]);
data3.add(listItem);
}
final BaseAdapter adapter3=new BaseAdapter(){
@Override
public int getCount() {
return data3.size();
}

@Override
public Object getItem(int position) {
return data3.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
View item=View.inflate(getApplicationContext(),R.layout.item_layout3,null);
ImageView header=item.findViewById(R.id.header);
TextView name=item.findViewById(R.id.name);
TextView desc=item.findViewById(R.id.desc);
Map p=data3.get(position);
header.setImageResource((int)p.get("header"));
name.setText(p.get("personName")+"");
desc.setText(p.get("desc")+"");
return item;
}
};
listView.setAdapter(adapter3);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {
Map p=(Map)adapter3.getItem(position);
String result=p.get("personName")+"";
Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show();
}
});
break;

}
}
}


activity_main.xml



xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

android:id="@+id/btn1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:text="ArrayAdapter" />

android:id="@+id/btn2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:text="SimpleAdapter" />

android:id="@+id/btn3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:text="BaseAdapter" />

android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent" />



item_layout1.xml



android:layout_width="match_parent"
android:layout_height="match_parent">

android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView" />




item_layout2.xml



android:layout_width="match_parent"
android:layout_height="match_parent">

android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

android:id="@+id/tv1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView" />

android:id="@+id/tv2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView" />

android:id="@+id/tv3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView" />




item_layout3.xml



xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">

android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">

android:id="@+id/header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxWidth="80sp"
android:maxHeight="80sp"
tools:srcCompat="@tools:sample/avatars" />

android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView" />

android:id="@+id/desc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView" />






演示:

相关文档

  • 手拉手致小朋友的一封信
  • My Summer holiday
  • 推介会策划方案范本
  • 美容美白的方法有哪些
  • 苹果care是什么意思啊
  • 励志文章及感悟生活的文章
  • numpy 线性代数_数据科学家的线性代数?用NumPy解释
  • java基础之--Stream流详解
  • 2017年中考语文名著知识点「必考」
  • 会议通知书的格式和范文
  • 大数据和传统数据的基本区别
  • 关于学好数学的四点建议
  • 坐火车防三种病
  • 2017中国大学教学质量排名
  • mysql sql乱码怎么解决_MYSQL数据库导入SQL文件出现乱码如何解决
  • Java通过httpclient获取cookie模拟登录
  • github,怎么向开源项目贡献自己的代码和协作
  • 没有结婚怎么上房产证加名
  • 语文学习不能局限于课本和课堂
  • 智力风暴(经典智力题)
  • 防传销安全常识
  • 社区图书馆论文最新版
  • 2020年辽宁朝阳建平县医院招聘专业技术人员公告62人
  • 三年级日记一则100字多篇
  • PPT如何调整网格线间距?
  • 苹果手机指纹数字密码忘记了怎么办
  • 加拿大留学移民入境报到的常识
  • 白血病可防可治! 看看你是否是白血病高危人群
  • 动漫少女图片可爱唯美头像
  • 火焰纹章封印之剑在物品整理时怎么使用英雄之证之类的物品
  • 猜你喜欢

  • 2013苏教版数学三下《面积单位间的进率》ppt课件1
  • 植物生理学5细胞及信号转导
  • 2019年国家注册一级消防工程师《消防安全技术综合能力》真题D卷 含答案
  • 武警总队医院内科医师地理教师个人述职报告范文与学*十八届五中全会精神心得体会范文精选3篇
  • 陈伟联《火柴天堂》歌词
  • 世界粮食日宣传活动方案_2
  • 培训专题-尽职调查服务协议
  • 青年志愿者协会招新的策划书
  • 保安每日巡查记录表(按此表格制作_每本页数30页)500本
  • 详细图解步骤win7系统安装
  • 2.8 字符集知识-让前端告别乱码
  • 在体验和感悟中成长
  • 六年级庆春节手抄报内容
  • 2019教育高考英语一轮复习课件(人教版必修1):《15Nelson Mandela—a modern hero》(100ppt)数学
  • 2019最新人教版小学语文二年级下册:鲁滨孙漂流记教案2-精品资料
  • 【2018最新】企业班组工作总结-范文word版 (9页)
  • (证明)单位工作证明标准范本
  • 如何提高小学信息技术的教学效率
  • 什么药物延时效果好
  • 华为账号登录密码忘了
  • 朋友结婚在国外去不了怎么办
  • 中国邮政集团公司山西省宁武县圪谬邮政支局企业信用报告-天眼查
  • 2020版一年级数学(下册)开学检测试卷 外研版A卷附答案
  • 浅谈农村留守学生心理问题的成因与对策
  • 泡脚养生助长寿 小心泡脚六禁忌
  • 【精编范文】201X年辽宁高考志愿填报时间以及批次设置-范文word版 (3页)
  • VS2013 下安装 Qt5
  • SqlServer 查看死锁的进程
  • 郑州振业广告信息有限公司企业信用报告-天眼查
  • 儿童口腔及视力保健知识讲座
  • 加强农村文化阵地建设,创新农村文化活动形式
  • 2019教育六年级上册英语课件Unit 7 I Had a Good TimeWhat did you do there陕旅版数学
  • 港版苹果xr支持电信卡吗
  • 精品学*七年级语文下册第三单元11台阶教学设计新人教版
  • 南财网络教育专升本成教--货币银行学课后*题及其答案
  • 铜川市大唐养生园开发建设有限公司企业信用报告-天眼查
  • 面具的设计制作教案初中美术人美版七年级上册.
  • 浅谈建筑施工测量的监理工作
  • damiani是什么牌子?damiani是奢侈品吗?
  • 总结参考-小学四年级工作总结4篇
  • 基于AT89S52单片机的简易智能小车的设计_廖天发
  • 仙游长旺古典家具有限公司企业信用报告-天眼查
  • 行政人事工作【流程图】)资料
  • 2014香港特别行政区会计证最新考试试题库
  • 餐饮品牌加盟商招商代理协议书范本-(优质文档)
  • 庆元旦作文900字
  • 丙肝弱阳性怎么回事
  • 洪山语文中考模拟试卷1
  • 河北省衡中清大教育集团高一上学期第五次月考(期末)英语试题
  • 中国梦我的梦
  • 舜风世纪花园智能小区一卡通系统工程案例
  • 昆明章吉商务信息咨询有限公司企业信用报告-天眼查
  • 【银得人生】2012年2月28日黄金、白银分析及操作建议
  • 心理测试交往性格题目
  • 初一作文:那年那月那泪光作文800字
  • 2011年深圳中考英语基础词汇表
  • 2014年安徽巢湖公务员面试培训,资格复审:全真模拟题3
  • 2018_2019版高中语文第三单元散文第12课鱼书课件粤教版
  • 大陆xxx公司员工辞职报告模板
  • 知识点一 雌性动物的生殖器官
  • 债权人建议债务人诈骗第三人的钱是否构成诈骗罪
  • 前台文员岗位职责_范文
  • 小学六年级上科学复*资料
  • 注册国际投资分析师卷一答案
  • 蟋蟀的饲养方法
  • 不是我吹是什么意思 不是我吹是什么梗
  • 劳动节的作文400字优质8篇
  • 【英语词汇】赵丽词汇笔记
  • 计算机技术认知实*报告
  • 六年级叙事作文:我的小乌龟_600字
  • 英语:Unit-3-《I-used-to-be-afraid-of-the-dark》课件(1)(鲁教版八年级下)(201908)
  • 欧莱雅眼霜简介
  • 戴尔电脑按什么u盘启动不了怎么办
  • poc, vul, exp都是什么意思呢?
  • 电梯安全管理培训课件_电梯的基本结构修订版
  • 人教版五年级语文上册第七单元测试卷答案
  • 中国石化销售有限公司河北沧州献县第九加油站企业信用报告-天眼查
  • 2、3、5倍数的特征实录与反思李慧
  • 长沙市雨花区桃阳矽砂矿企业信用报告-天眼查
  • 2019年中考历史考点过关:6.1-“上合青岛峰会”、文明的交流和对外交往课件
  • 郑大实践课考试答辩时间
  • 最新整理2019年入党积极分子党课培训思想汇报:幸福是什么.doc
  • 人教新目标九年级英语全册课件:unit9 Section A 3 Grammar Focus-4c (共33张PPT)
  • 最小生成树算法和单源最短路径算法
  • 电脑版