Android——ArrayAdapter两个构造方法的区别

Android 浅谈ListView中ArrayAdapter和SimpleAdapter的用法 /第一步:先获取ListView的控件资源//第二步准备数据库(Array)String [] data={“中国”,“俄罗斯”,“美国”,“英国”,“法国”,“印度”,“韩国”,“朝鲜”,“意大利”,“土耳其”,“阿达里亚”,“加拿大”,“缅甸”,“日本”,“老挝”,“蒙古”,“乌克兰”,“泰国”};//第三步:配置适配器(ArrayAdapter)3个参数,上下文,xml布局资源,数据库源//第四步:将适配器与ListView经行关联最终效果图。 阅读详情


首先,在Activity中写的数据(数组、链表、集合、数据库等)无法直接传递给ListView的,要将数据传递过去,需要借助适配器(Adapter)来完成。

这里讲得是ArrayAdapter这个适配器(数组适配器),这个适配器的数据源可以是集合或者数组。本人开始碰这个适配器的时候,结合视频和书看的,发现ArrayAdapter 有两个构造方法,书本上用的是三个参数的,视频上用的是四个参数的,当时就觉得混乱。上网搜索一下,看着别人说的不太适合自己的理解,所以这里写下自己的理解。

查阅资料后,经过整理,个人总结一下这两个构造方法的用法和区别。

ArrayAdapter的两个构造方法:

  • public ArrayAdapter (Context context, int resource, int textViewResourceId, List objects)
  • public ArrayAdapter (Context context, int resource, List objects)

        其中 resource 是 layout,textViewResourceId 是 textview的id,list object 是要适配的数据。

        区别在于,如果我自定义了TextView控件,则需要使用四个参数的 ArrayAdapter方法。

        最后,还需要调用 ListView 的 setAdapter() 方法,将构建好的适配器对象传递进去,才算将 ListView 和数据关联好。


总结使用适配器的过程:

新建适配器——>添加数据源到适配器——>视图加载适配器


栗子:

  • 三个参数的,直接用自带的 android.R.layout.simple_list_item_1

MainActivity.java

package com.example.jj.listview_arrayadapter_821;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    ArrayList<String> dataList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //找控件
        ListView listView=(ListView) findViewById(R.id.listView);

        //准备数据
        initData();

        //展示数据——数据适配器
        //resource  资源文件————要展示的布局效果
        //textViewResourceId textView 的id
        //objects 集合或者数据

        listView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,dataList));
    }
    private void initData(){
        dataList=new ArrayList<String>();
        for(int i=0;i<20;i++){
            dataList.add("我是第"+i+"条目");
        }
    }
}

  • 使用四个参数的,自定义了TextView。

lv_list.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/tv_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>


MainActivity.java

package com.example.jj.listview_arrayadapter_821;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    ArrayList<String> dataList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //找控件
        ListView listView=(ListView) findViewById(R.id.listView);

        //准备数据
        initData();

        //展示数据——数据适配器
        //resource  资源文件————要展示的布局效果
        //textViewResourceId textView 的id
        //objects 集合或者数据

        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,R.layout.lv_list,R.id.tv_title,dataList);
        listView.setAdapter(adapter);

    }
    private void initData(){
        dataList=new ArrayList<String>();    //创建ArrayList 动态数组 dataList 
        for(int i=0;i<20;i++){
            dataList.add("我是第"+i+"条目");
        }
    }
}


上文有什么不对的,望各位大牛们不吝指出。


附上一篇关于 ArrayList 动态数组使用的博客。

http://www.cnblogs.com/rickie/articles/67978.html







android中arrayAdapter(简单文本列表)的基础操作 摘要:ArrayAdapter是Android开发中用于数据与列表视图绑定的基础适配器。本文详解其核心用法及进阶技巧:(1)基础使用流程包括准备数据源、选择布局(系统内置或自定义)、初始化适配器;(2)高级功能涵盖动态数据更新、点击事件处理和自定义过滤实现;(3)常见问题解决方案涉及布局ID匹配、数据刷新机制等。特别说明:ArrayAdapter适合简单文本列表,复杂场景建议通过自定义子类或RecyclerView实现。掌握ArrayAdapter是学习Android列表开发的重要基础。 阅读详情

相关推荐

Diffix3D+复现

上下载模型,将其放在一个目录中,并将目录名填在demo代码中from_pretrained的cache_dir参数里。目录结构应该是"<PATH>/nvidia/difix/…给的requirements文件中pytorch和xformers的版本没有指定,这里测试过以下版本,可以成功运行。将readme中的demo代码新建一个python脚本复制进去,然后将脚本放在src目录中运行。如果遇到网络问题无法加载huggingface上的预训练模型,可以手动从。如果出现,以下错误重新。

NeverMakeIt的博客 1085

Android(14) ArrayAdapter(数组适配器)的三种方法

ArrayAdapter数组适配器用于绑定格式单一的数据,数据源可以是集合或者数组 列表视图(ListView)以垂直的形式列出需要显示的列表项。 实现过程:新建适配器->添加数据源到适配器->视图加载适配器 第一种:直接用ListView组件创建 列表每一行只有一行文字 效果如图: activity_list布局: <?xml version="1.0" e...

郑清 5万+

OmniQuant:全方位校准实现大语言模型高效量化与移动端部署

模型量化是一种通过降低模型权重和激活值的数值精度来压缩模型大小、减少内存占用和计算开销的核心技术。其原理在于将高精度浮点数映射到低精度整数表示,从而在保持模型性能的同时,显著提升存储和计算效率。这项技术的价值在于,它使得大规模语言模型能够在消费级硬件和资源受限的移动设备上运行,极大地拓宽了AI应用场景。OmniQuant作为一项前沿的量化技术,通过引入可学习权重裁剪和可学习等价变换机制,实现了对权重分布不均匀和激活值异常值问题的协同优化,从而在极低的比特数下仍能保持优异的模型性能。本文深入探讨了OmniQu

weixin_30719711的博客 484

Android UI学习 - ListView (android.R.layout.simple_list_item_1是个什么东西)

Android UI学习 - ListView  2010-06-20 18:21:35  标签:Android  UI 移动开发 ListView  ListActivity    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://android.blog.51cto.com/268543/336162   

最爱山间那朵云 1万+

电商平台大数据分析指标

一、五大关键数据分析指标 1.1活跃用户量 活跃用户量是一个基本的指标,有 DAU(日活跃用户)、WAU(周活跃用户)和 MAU(月活跃用户)三个层次; 1.2转化 转化是一个非常重要的指标,电商运营需要关注主路径、次路径甚至精细到每一个品类 / SKU 的转化率; 1.3留存 留存要从不同的时间周期上研究,包括次日留存率、3 日、7 日、30 日留存; 1.4复购 复购则要从 3 个角度去看,复购用户量、复购率和复购金额比; 1.5GMV GMV 是最重要的指标,我们的运营最终是围绕这

默主归沙的博客 4818

浮栅晶体管原理深度解析:热电子注入与FN隧穿如何实现1/0存储

本文深入解析了浮栅晶体管的工作原理,重点探讨了热电子注入与FN隧穿机制如何实现1/0存储。作为现代闪存芯片的核心技术,浮栅晶体管通过独特的结构设计实现非易失性存储,文章详细分析了其编程与擦除的物理过程,并对比了两种机制的优缺点,为闪存性能优化提供了理论基础。

weixin_30363285的博客 373

ArrayAdapter详解:ArrayAdapter(Context context, int textViewResourceId, T[] objects)

ArrayAdapter常用6个构造方法: ArrayAdapter(Context context, int textViewResourceId) ArrayAdapter(Context context, int resource, inttextViewResourceId) ArrayAdapter(Context context, inttextViewResourceId, T[] objects) ArrayAdapter(Context co

AI吃大瓜的博客 7989

提示词注入攻击全面解析与防御策略

提示词注入(Prompt Injection)是指攻击者通过精心构造的输入内容,操纵或欺骗AI系统执行非预期行为的技术手段。这种攻击类似于传统的SQL注入或XSS攻击,但其目标是AI模型的提示词处理机制而非数据库或网页。提示词注入利用了大语言模型的一个基本特性:它们被设计为遵循指令。攻击者通过在用户输入中嵌入特定指令,试图覆盖或绕过系统原有的安全限制和行为规则,让模型执行本不应该执行的操作。深度防御:实施多层次防御策略,不依赖单一安全措施持续更新:随着攻击技术的发展不断更新防御措施安全设计优先。

免责声明:本资料部分整理自合法网络公开渠道,部分为个人学习积累成果,仅作学习参考、学术交流使用。所收费用仅为资料搜集整理的时间劳务酬劳。版权归原作者及出版方所有,本人不承担相关版权及内容法律责任,若有侵权请告知,即刻删除处理。 4207

Android之ArrayAdapter详解

说起我们的android开发,相信大家用的最多的一个控件要说listView了,下面我们看一下网上比较流行的说法 顾名思义,就是把一些数据给弄得适当,适合以便于在View上显示。可以看作是 界面数据绑定的一种理解。它所操纵的数据一般都是一些比较复杂的数据,如数组,链表,数据库,集合等。适配器就像显示器,把复杂的东西按人可以接受的方式来展现。那么适配器是怎么处理得到的数据,并把它显示出来的呢。其

Confidence 1303

用Python实现四叉树(quad tree)

import numpy as np #正方形类 class square: #lx、ly为左上角坐标(x对应行号,y对应列号),rx、ry为右下角坐标 def __init__(self,lx,ly,rx,ry): self.lx=lx self.ly=ly self.rx=rx self.ry=ry #检查该矩阵中是否满足条件 #参数:原矩阵,阈值 #返回值:布尔类型 def check(s

weixin_44164489的博客 5868

【电力电子控制】基于强化学习的单相逆变器并网电流控制

本文将尝试以 DQN(Deep Q-Network)为例,设计并训练一个面向单相逆变器的智能控制器,实现对并网电流的精准调节。

weixin_62596197的博客 463

ArrayAdapter和SimpleAdapter

  ArrayAdapter(数组类型适配器,将指定的数据源显示到item选项布局中)          ----->父类:BaseAdapter;          ------->方法:a构造方法:ArrayAdapter(Context context,int resource,T[]objects/List<T>objects);b常用方法:creat...

bangmian3968的博客 305

工业级4~20mA转0~3V信号调理电路原理图设计,已量产(电流传感器)

在工业现场,4~20mA 电流信号是模拟量传输的 “老熟人”—— 抗干扰强、能跑长距离,但嵌入式 MCU 的 ADC 一般只认电压信号。最近做项目时,我设计了一款能覆盖 0~25mA(含超量程冗余)、线性输出 0~3V 的调理电路,经过现场调试挺稳定,分享下细节。

不脱发的程序猿 526

简单好用的Adapter---ArrayAdapter

简单好用的Adapter---ArrayAdapter  转载自: http://www.cnblogs.com/wenjiang/p/3196205.html     这次就介绍一下ListView中比较简单但又非常方便的ArrayAdapter。     ArrayAdapter是BaseAdapter的派生类,在BaseAdapter的基础上,添加了一项重大的功能:可以直接使用

qq_21371027的专栏 411

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

android 自定义适配器Adapter基类BaseAdapter

[b][color=red]AdapterView[/color][/b]中经常用到适配器Adapter,而anroid提供的Adapter只是几种框架,如果我们有需求,还是要自己根据需求而自定义Adapter的。 android提供的[color=blue][b]三种Adapter[/b][/color]主要有[color=red]ArrayAdapter SimpleAdapter Si...

写博客只为学习 275

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

ArrayAdapater不同参数使用的细节

Adapter是连接后端数据和前端显示的适配器接口,适配器是数据和视图之间的桥梁。 在常见的View(ListView,GridView)等地方都需要用到Adapter。android提供的 三种Adapter主要有ArrayAdapter,SimpleAdapter,SimpleCursorAdapter。     其中ArrayAdapter的构造方法参数有多种,在使用时一般用如下两种,

Jacky_Cmd 1040

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ArrayAdapter和BaseAdapter的区别

近期很多Android开发者来函表示对ArrayAdapter和BaseAdapter的区别不是很清楚,这里Android123简单说下他们的关系和用处,ArrayAdapter是从BaseAdapter派生出来的,具备BaseAdapter的所有功能,但ArrayAdapter更为强大,它实例化时可以直接使用泛型构造,我们在Android SDK中可以看到android.widget.Array

zwq1457的专栏 4478

Android SimpleAdapter,SimpleCursorAdapter,ArrayAdapter的区别

数据源不同而已 1. String[]: ArrayAdapter 2. List>: SimpleAdapter 3. 数据库Cursor: SimpleCursorAdapter 使用ArrayAdapter(数组适配器)顾名思义,需要把数据放入一个数组以便显示。 android.R.layout.simple_list_item_1是系统定义好的布局文件只显示一行文字 Simpl

andy_android的专栏 1627

ArrayAdapter和BaseAdapter的区别是什么

近期很多Android开发者来函表示对ArrayAdapter和BaseAdapter的区别不是很清楚,这里Android123简单说下他们的关系和用处,ArrayAdapter是从BaseAdapter派生出来的,具备BaseAdapter的所有功能,但ArrayAdapter更为强大,它实例化时可以直接使用泛型构造,我们在Android SDK中可以看到android.widget.Array

你若盛开 清风自来 1149

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

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

T5858785的博客 2357

ArrayAdapter学习总结

ArrayAdapter(数组适配器)一般用于显示一行文本信息

Greedy Hat的博客 484

Android 浅谈ListView中ArrayAdapter和SimpleAdapter的用法,干货精讲

如果要是想展示更多的东西,如想在照片的一侧添加一个title(人物名称)和message(人物简介)则可以在你刚才建立的xml文件中设置两个textview即可,同时在List data=new ArrayList();String [] data={“中国”,“俄罗斯”,“美国”,“英国”,“法国”,“印度”,“韩国”,“朝鲜”,“意大利”,“土耳其”,“阿达里亚”,“加拿大”,//map是data中的其中一个值。

rt3Dmax9的博客 1028

BaseAdapter、SimpleAdapter和ArrayAdapter三种适配器的区别及使用

什么是适配器呢? 适配器顾名思义就是把数据变成符合界面风格的形式,并且通过ListView显示出来。适配器就是数据和界面之间的桥梁。 首先演示ArrayAdapter 在布局文件夹内创建一个xml文件用来显示数组中的数据,然后在主页面布局文件中加入listview控件最后在MainActivity中创建数组适配器对象并将它显示到listview控件中,即可。 接下来演示simpleAdap...

伯nulee 6828
下一篇: java——读取JSON文件
ALemon_Y
博客等级 码龄10年 6粉丝 4原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值