[Android学习笔记]使用ListView
简单使用ListView
关键在于Adatper
Adatper用来连接UI与数据源。Adapter既负责提供数据,又负责创建Item视图。
一般步骤:
1.创建list_item.xml,用来创建ListView的Item的UI
2.自定义Adapter和数据源对象
3.在页面布局中定义ListView,在Activity中获取ListView引用
4.为ListView添加Adatper对象
Ex:
1.创建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="vertical" ><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/name"android:paddingLeft="50px"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/age"android:text="a"android:paddingLeft="50px"/><TextViewandroid:id="@+id/id"android:layout_width="wrap_content"android:layout_height="wrap_content"android:paddingLeft="50px" /></LinearLayout>
list_item.xml
2.自定义Adatper
public class StudentAdapter extends BaseAdapter {/*** 数据源 */private List<Student> students;/*** inflater引用 ,用来加载item.xml,获得view引用*/private LayoutInflater inflater;/*** item.xml资源 */private int source;public StudentAdapter(Context context,List<Student> students , int source){this.students = students;this.source = source;//inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);inflater = LayoutInflater.from(context);}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn students.size();}@Overridepublic Object getItem(int arg0) {// TODO Auto-generated method stubreturn students.get(arg0);}@Overridepublic long getItemId(int arg0) {// TODO Auto-generated method stubreturn arg0;}/* (non-Javadoc)* @see android.widget.Adapter#getView(int, android.view.View, android.view.ViewGroup)* 创建Item视图,关联数据源*/@Overridepublic View getView(int arg0, View arg1, ViewGroup arg2) {// TODO Auto-generated method stub TextView idView = null;TextView nameView = null;TextView ageView = null;if(arg1 == null){arg1 = this.inflater.inflate(source, null);idView = (TextView)arg1.findViewById(R.id.id);nameView =(TextView)arg1.findViewById(R.id.name);ageView = (TextView)arg1.findViewById(R.id.age);}else{idView = (TextView)arg1.findViewById(R.id.id);nameView =(TextView)arg1.findViewById(R.id.name);ageView = (TextView)arg1.findViewById(R.id.age);}Student stu = students.get(arg0);idView.setText(stu.getId().toString());nameView.setText(stu.getName());ageView.setText(stu.getAge().toString());return arg1;}}
Adatper
3.在Activity中为ListView添加Adatper
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listView = (ListView)findViewById(R.id.myListView);ArrayList<Student> students = new ArrayList<Student>();students.add(new Student("st",1,1));StudentAdapter aa = new StudentAdapter(this,students,R.layout.list_item);listView.setAdapter(aa);}
Activity
转载于:https://www.cnblogs.com/hellenism/p/3617058.html
[Android学习笔记]使用ListView相关推荐
- Android学习笔记--7.listView的使用
前言:ListView这个控件,是挺重要的控件,我们在很多应用中都可以见到它,例如联系人列表,微信的聊天和联系人列表界面等等,所以要下功夫好好学了.在这个控件的学习中也是遇到了不少问题,一个就是,我在 ...
- Android学习笔记之ListView与Item的焦点冲突处理
由于ListView的Item需要焦点,Item里面的子控件(如ImageButton,Button,CheckBox等等)也需要焦点的时候,就会出现焦点冲突问题,导致Item无法获得焦点,无法相应I ...
- 【Android -- 学习笔记】ListView 详解
直接继承自 AbsListView,AbsListView 继承自 AdapterView,AdapterView 又继承自 ViewGroup. Adpater 在 ListView 和数据源之间起 ...
- Android学习笔记:Android基础知识点(不断更新中)
1.Android学习笔记:OkHttp 2.Android学习笔记:更新UI的方法(UI线程和非UI线程) 3.Android学习笔记:Volley 4.Android学习笔记:Handler 5. ...
- Android学习笔记 2.5.3 实例——使用SimpleAdapter创建ListView 2.5.4 自动完成文本框(AutoCompleteTextView)的功能与用法
Android学习笔记 疯狂Android讲义 文章目录 Android学习笔记 疯狂Android讲义 第2章 Android 应用的界面编程 2.5 第4组 UI组件:AdapterView及其子 ...
- 【转】 Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner
目录(?)[-] GridView Spinner GridView GridView是网格状布局,如图所示.在了解ListView后,很容易了解GridView.下面是例子的XML文件. <? ...
- 【转】Pro Android学习笔记(二五):用户界面和控制(13):LinearLayout和TableLayout...
目录(?)[-] 布局Layout 线性布局LinearLayout 表格布局TableLayout 布局Layout Layout是容器,用于对所包含的view进行布局.layout是view的子类 ...
- Android学习笔记-常用的一些源码,防止忘记了
Android学习笔记-常用的一些源码,防止忘记了... 设置拨打电话 StringdialUri="tell:"+m_currentTelNumble; IntentcallIn ...
- Android学习笔记 56. TabLayout 选项卡布局
Android学习笔记 Android基础开发--布局 文章目录 Android学习笔记 Android基础开发--布局 56. TabLayout 选项卡布局 56.1 简介 56.2 TabIte ...
最新文章
- 架构师之路 — API 经济 — RESTful API 设计规范原则
- leetcode 289. Game of Life | 289. 生命游戏(Java)
- dp线和hdmi区别_HDMI铜线与光纤线有啥区别?为什么铜线传播速度更快?看完涨知识...
- 数据结构与算法之栈与队列:java实现
- vue 判断一个数是否在数组中_高级前端进阶,vue如何实现$nextTick
- 【记录】AutoMapper Project To OrderBy Skip Take 正确写法
- 央行等四部门发布资管新规全文
- [Android] SharedPreferences(轻量级的存储方式)
- 离线语音茶吧机设计应用案例
- C 关于unsigned int compzero = ~0;与unsigned int compzero = 0xFFFF; 的区别!
- 【题解】UVA11584 Partitioning by Palindromes
- sandboxie游戏不能运行在虚拟环境中如何解决_Sandboxie:这款曾卖一百多的知名沙盘软件,现在免费开源了...
- python 遗传算法多目标优化_NSGA2 遗传算法解决多目标优化
- 玩转console.log 如何在console.log里面插入图片
- oracle视图分页查询,视图以及oracle分页,练习
- [Git] 代码管理之 Git(一)Git 入门
- 人工智能数学课高等数学线性微积分数学教程笔记(4. 多元函数的微分学)
- 【学习笔记】GPS原理及数据处理(快速静态定位中的整周模糊度确定,FRAR和LAMBDA)
- 分析千万数据,我们深扒了风口上的球鞋转卖市场
- 学习:IT专业词汇-3
热门文章
- jz2440-uboot-201204版本移植【学习笔记】【原创】
- maven配置国内阿里云镜像
- 在linux oracle 10g/11g x64bit环境中,goldengate随os启动而自己主动启动的脚本
- 数组实用类:Arrays
- 让.NET程序会说话
- hdu 1166 敌兵布阵 树状数组 模板题
- 在有限多的不大于100的正整数中,找出尽量多个相加起来值介于98~102之间的组合...
- Android USB转串口编程
- 大学计算机第三单元测试题及答案,MOOC计算机网络第三单元测验(哈尔滨工业大学)...
- 超级马里奥游戏像素素材_《超级马里奥3D世界+库巴之怒》游戏文件尺寸相当小...