ArrayAdapter使用示例

article/2025/9/22 23:02:09

1)ArrayAdapter使用示例:

运行效果图:

代码实现:

public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//要显示的数据String[] strs = {"基神","B神","翔神","曹神","J神"};//创建ArrayAdapterArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,strs);//获取ListView对象,通过调用setAdapter方法为ListView设置Adapter设置适配器ListView list_test = (ListView) findViewById(R.id.list_test);list_test.setAdapter(adapter);}
}

一些相关的东西:

1.除了通过数组外,我们还可以写到一个数组资源文件中:

比如:在res\valuse下创建一个数组资源的xml文件:arrays.xml

<?xml version="1.0" encoding="utf-8"?>  
<resources>  <string-array name="myarray">  <item>语文</item>  <item>数学</item>  <item>英语</item>  </string-array>      
</resources>

接着布局的listview属性设置下这个列表项:

<ListView  android:id="@id/list_test"  android:layout_height="match_parent"  android:layout_width="match_parent"   android:entries="@array/myarray"/>

就可以了~

当然我们也可以在Java代码中这样写:

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,R.array.myarray,android.R.layout.simple_list_item_multiple_choice );

同样也是可以的!

2.一开始也说了这个ArrayAdapter支持泛型,那么集合必不可少啦,比如,这样写:

List<String> data = new ArrayList<String>();
data.add("基神");
data.add("B神");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,data);

就可以了~

3.我们看到了在实例化ArrayAdapter的第二个参数: android.R.layout.simple_expandable_list_item_1 其实这些是系统给我们提供好的一些ListView模板,有下面几种:

simple_list_item_1 : 单独一行的文本框  simple_list_item_2 : 两个文本框组成  simple_list_item_checked : 每项都是由一个已选中的列表项  simple_list_item_multiple_choice : 都带有一个复选框  simple_list_item_single_choice : 都带有一个单选钮 


2)SimpleAdapter使用示例:

SimpleAdapter:简单的Adapter,看似简单,功能强大,下面我们来写个稍微复杂一点的列表 布局吧!

运行效果图:

代码实现:

先来编写一个列表项目每一项的布局:

list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"><!-- 定义一个用于显示头像的ImageView --><ImageViewandroid:id="@+id/imgtou"android:layout_width="64dp"android:layout_height="64dp"android:baselineAlignBottom="true"android:paddingLeft="8dp" /><!-- 定义一个竖直方向的LinearLayout,把QQ呢称与说说的文本框设置出来 --><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><TextViewandroid:id="@+id/name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:paddingLeft="8dp"android:textColor="#1D1D1C"android:textSize="20sp" /><TextViewandroid:id="@+id/says"android:layout_width="wrap_content"android:layout_height="wrap_content"android:paddingLeft="8px"android:textColor="#B4B4B9"android:textSize="14sp" /></LinearLayout></LinearLayout>

接下来是MainActivity.java:

public class MainActivity extends AppCompatActivity {private String[] names = new String[]{"B神", "基神", "曹神"};private String[] says = new String[]{"无形被黑,最为致命", "大神好厉害~", "我将带头日狗~"};private int[] imgIds = new int[]{R.mipmap.head_icon1, R.mipmap.head_icon2, R.mipmap.head_icon3};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);List<Map<String, Object>> listitem = new ArrayList<Map<String, Object>>();for (int i = 0; i < names.length; i++) {Map<String, Object> showitem = new HashMap<String, Object>();showitem.put("touxiang", imgIds[i]);showitem.put("name", names[i]);showitem.put("says", says[i]);listitem.add(showitem);}//创建一个simpleAdapterSimpleAdapter myAdapter = new SimpleAdapter(getApplicationContext(), listitem, R.layout.list_item, new String[]{"touxiang", "name", "says"}, new int[]{R.id.imgtou, R.id.name, R.id.says});ListView listView = (ListView) findViewById(R.id.list_test);listView.setAdapter(myAdapter);}
}

好的,上面就是SimpleAdapter的简单用法了,有点意思~


3)SimpleCursorAdapter使用示例:

虽然这东西过时了,不过对于不怎么会SQLite的初学者来说,用起来还是蛮方便的! 记得前面我们学ContentProivder写过的读取联系人的例子么?之前是通过打印Log的 方式显示出来,现在我们通过这个SimpleCursorAdapter把它显示到ListView上!

实现效果图

代码实现

先写下listView每个item的布局:

list_item.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"><TextViewandroid:id="@+id/list_name"android:layout_width="0dp"android:layout_height="64dp"android:layout_weight="1"android:gravity="center"android:text="小猪"android:textColor="#0000FF"android:textSize="18sp" /><TextViewandroid:id="@+id/list_phone"android:layout_width="0dp"android:layout_height="64dp"android:layout_weight="1"android:gravity="center"android:text="13798989898"android:textColor="#EA5C4D"android:textSize="18sp" /></LinearLayout>

接着activity_main布局和前面的一样,就是简单的ListView,然后是

MainActivity.java:

public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ListView list_test = (ListView) findViewById(R.id.list_test);//读取联系人Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);SimpleCursorAdapter spcAdapter = new SimpleCursorAdapter(this,R.layout.list_item,cursor,new String[]{ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,ContactsContract.CommonDataKinds.Phone.NUMBER},new int[]{R.id.list_name,R.id.list_phone});list_test.setAdapter(spcAdapter);}
}

最后AndroidManifest.xml里加个读联系人的权限就可以了!

<uses-permission android:name="android.permission.READ_CONTACTS"/>

http://chatgpt.dhexx.cn/article/KHKwE89F.shtml

相关文章

Android Listview ArrayAdapter示例

ListView 的使用大致上可以分为四个步骤&#xff1a;添加 ListView 组件、存储数据、设置列表项item的布局文件、加载数据/资源进行显示、添加监听。 这篇文章主要讲一下最简单的ArrayAdapter的用法 示例效果如下&#xff1a; 主layout文件 <?xml version"1.0"…

java arrayadapter_「arrayadapter」Android之ArrayAdapter(数组适配器)的三种方法 - seo实验室...

arrayadapter arrayadapter数组适配器用于绑定格式单一的数据&#xff0c;数据源可以是集合或者数组 列表视图(listview)以垂直的形式列出需要显示的列表项。 实现过程&#xff1a;新建适配器->添加数据源到适配器->视图加载适配器 第一种&#xff1a;直接用ListView组件…

java arrayadapter_Android之ArrayAdapter详解

BaseAdapter之ArrayAdapter ArrayAdapter是BaseAdapter的一个具体实现&#xff0c;可直接使用泛型进行构造&#xff0c;能像List一样直接对Adapter进行增删操作。也是最简单的一个了 ArrayAdapter使用示例&#xff1a; 运行效果图&#xff1a; public class MainActivity exten…

ArrayAdapter

Android Adapter:ArrayAdapter篇 版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 这是Android Adapter系列文章的第一篇&#xff0c;该系列主要会讲到如下几种Adapter。&#xfffc; ArrayAdapter是BaseAdapter的一个具体实现&#xff0c;可直接使…

ArrayAdapter三个参数和四个参数的使用区别

ArrayAdapter三个参数和四个参数的使用区别: //3参形式:public ArrayAdapter (Context context, int resource, T[] objects)//4参形式:public ArrayAdapter (Context context, int resource, int textViewResourceId, T[] objects)参数介绍 Context context //指上下文,一般写…

【Android基础】ArrayAdapter适配器展示数据

文章目录 前言创建ListView启动渲染数据 效果图 前言 适配器充当View与数据之间的桥梁&#xff0c;本文记录下ArrayAdapter适配器展示数据&#xff1b;ArrayAdapter比较简单&#xff0c;只能显示一行文本&#xff1b; 创建ListView <?xml version"1.0" encodi…

Android 数组适配器和简单适配器

数组适配器ArrayAdapter ArrayAdapter主要用于每行列表只展示文本的情况 声明一个数组适配器 ArrayAdapter<String> arrayAdapter new ArrayAdapter<String>(this, R.layout.support_simple_spinner_dropdown_item, stringArray);//stringArray为字符串数组 pr…

winhex 19.8 注册码生成工具(keygen)

下面这个是我电脑生成的&#xff0c;可以先试试&#xff0c;如果不行可以下载工具重新生成。 // WinHex license fileName: DimitarSerg Addr: dsmail.ua Addr: Ukraine Data: 0F557DBDC9F648EACF4065D7F857223E Data: 4E0656414E48F4DEE6991EC8205CB994 Cksm: F22E328E下载地…

cdr2022辅助注册机序列号

CorelDRAW2022使用专业工具踏上设计之旅&#xff0c;绘制矢量图片、调整布局、编辑照片等&#xff0c;空间广阔&#xff0c;操作精微详尽。它供给了规划者一整套的绘图工具包括圆形、矩形、多边形、方格、螺旋线&#xff0c;等等&#xff0c;并合作塑形工具&#xff0c;对各种根…

软件注册码

edit plus 注册码自动生成网页&#xff1a; http://demon.tw/my-work/editplus-regcode-online.html baoyou F3507-CC2A0-2E1E5-4802E-54FB6 http://www.jb51.net/tools/editplus/ wm ware workstation 12 注册码 5A02H-AU243-TZJ49-GTC7K-3C61N &#xff08;亲测 可用&…

各种注册码

1、navicat for mysql 10.1.7注册码,找了很多都不能用&#xff0c;终于找到一个可用的了&#xff1a; 名和组织随意,注册码是:NAVN-LNXG-XHHX-5NOO 下载地址&#xff1a;http://www.cr173.com/soft/38153.html 注册码原文&#xff1a;http://blog.sina.com.cn/s/blog_763dc8…

各种杀毒软件序列号注册码大全

瑞星杀毒软件2006升级包以及的序列号||||金山毒霸2006正版序列号注册码和升级器 看到后觉得不错&#xff0c;特来推荐给各位 瑞星杀毒软件2006升级包以及的序列号 产品序列号&#xff1a;7JE9R9-QTSIEI-EFF4SB-EJ5200 产品序列号&#xff1a;52LDJG-Q9LBCT-6ACQX2-R38200 产品序…

NB-IOT+GPS模组

NB-IOTGPS模组AM21E助力物联网基于位置的服务 定位模块大家都知道&#xff0c;就是提供位置信息的模块产品&#xff0c;定位精度在3-5米&#xff0c;主要智能穿戴&#xff0c;物品管理&#xff0c;智慧物流领域中。 在选择以智能手环、智能手表为代表的智能穿戴设备时&#xf…

NB-IoT物联网技术

一、什么是NBIOT NB-IoT是指窄带物联网(Narrow Band -Internet of Things)技术。NB-IOT聚焦于低功耗广覆盖(LPWA)物联网(IoT)市场&#xff0c;是一种可在全球范围内广泛应用的新兴技术。NB-IOT使用License频段&#xff0c;可采取带内、保护带或独立载波等三种部署方式&#xf…

【Jetson目标检测SSD-MobileNet应用实例】(五)根据输出的检测结果,使用串口和STM32配合进行电机控制

【Jetson目标检测SSD-MobileNet应用实例】&#xff08;一&#xff09;win11中配置SSD-MobileNet网络训练境搭建 【Jetson目标检测SSD-MobileNet应用实例】&#xff08;二&#xff09;制作自己的数据集–数据集的采集、标注、预处理 【Jetson目标检测SSD-MobileNet应用实例】&am…

NB-IOT 温湿度数据上报及IOT平台数据下发(STM32L4,电信Oceanconnect, COAP协议)

在设备侧&#xff0c;智能设备采用了NB-IOT芯片&#xff0c;它和中国电信物联网开放平台之间通过CoAP协议通讯。CoAP报文的payload里是设备的应用数据。 应用server通过http/https协议和平台通讯&#xff0c;通过调用平台的开放API来控制设备&#xff0c;平台把设备上报的数据…

怎么使用nbtscan工具一条命令扫描局域网内所有的IP及MAC

具体操作方法&#xff1a; 1、下载nbtscan.rar文件并解压。 2、然后将解压好的cygwin1.dll和nbtscan.exe两文件拷贝到C:\WINDOWS\system32根目录下&#xff08;根目录下即可&#xff09;&#xff1b; 3、进入cmd窗口就可以输入命令&#xff1a;nbtscan 192.168.X.98/24&#xf…

NB-IOT的使用

目录 一、AT指令 二、串口透明传输 三、搭建自己的服务器 一、AT指令 •AT命令集是由拨号调制解调器(MODEM)的发明者贺氏公司(Hayes)为了控制Modem发明的控制协议。 • •AT是Attention的缩写,协议本身采用文本.每个命令均以AT打头,因此得名 • •主要的移动电话生产厂商诺基…

NB-IOT介绍

文章目录 简介特点超低功耗DRX模式&#xff1a;eDRX模式&#xff1a;PSM模式&#xff1a; 超大连接超低成本超强覆盖 通信协议COAP协议COAP协议消息类型COAP的请求码&#xff08;requests&#xff09;和响应码(responses)COAP的安全性 MQTT协议MQTT工作原理MQTT的消息类型 LWM2…

基于STM32的(NB-IOT(BC26))温湿度监测系统

基于STM32的&#xff08;NB-IOT(BC26)&#xff09;温湿度监测系统 闲来无事&#xff0c;用手头STM32做个项目。 成品功能&#xff1a;STM32采集温度、湿度数据&#xff0c;显示在屏幕上&#xff0c;通过NB-IOT(BC26)模块连接阿里云物联网平台接受数据并实时监控。 材料 STM3…