简单使用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相关推荐

  1. Android学习笔记--7.listView的使用

    前言:ListView这个控件,是挺重要的控件,我们在很多应用中都可以见到它,例如联系人列表,微信的聊天和联系人列表界面等等,所以要下功夫好好学了.在这个控件的学习中也是遇到了不少问题,一个就是,我在 ...

  2. Android学习笔记之ListView与Item的焦点冲突处理

    由于ListView的Item需要焦点,Item里面的子控件(如ImageButton,Button,CheckBox等等)也需要焦点的时候,就会出现焦点冲突问题,导致Item无法获得焦点,无法相应I ...

  3. 【Android -- 学习笔记】ListView 详解

    直接继承自 AbsListView,AbsListView 继承自 AdapterView,AdapterView 又继承自 ViewGroup. Adpater 在 ListView 和数据源之间起 ...

  4. Android学习笔记:Android基础知识点(不断更新中)

    1.Android学习笔记:OkHttp 2.Android学习笔记:更新UI的方法(UI线程和非UI线程) 3.Android学习笔记:Volley 4.Android学习笔记:Handler 5. ...

  5. Android学习笔记 2.5.3 实例——使用SimpleAdapter创建ListView 2.5.4 自动完成文本框(AutoCompleteTextView)的功能与用法

    Android学习笔记 疯狂Android讲义 文章目录 Android学习笔记 疯狂Android讲义 第2章 Android 应用的界面编程 2.5 第4组 UI组件:AdapterView及其子 ...

  6. 【转】 Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner

    目录(?)[-] GridView Spinner GridView GridView是网格状布局,如图所示.在了解ListView后,很容易了解GridView.下面是例子的XML文件. <? ...

  7. 【转】Pro Android学习笔记(二五):用户界面和控制(13):LinearLayout和TableLayout...

    目录(?)[-] 布局Layout 线性布局LinearLayout 表格布局TableLayout 布局Layout Layout是容器,用于对所包含的view进行布局.layout是view的子类 ...

  8. Android学习笔记-常用的一些源码,防止忘记了

    Android学习笔记-常用的一些源码,防止忘记了... 设置拨打电话 StringdialUri="tell:"+m_currentTelNumble; IntentcallIn ...

  9. Android学习笔记 56. TabLayout 选项卡布局

    Android学习笔记 Android基础开发--布局 文章目录 Android学习笔记 Android基础开发--布局 56. TabLayout 选项卡布局 56.1 简介 56.2 TabIte ...

最新文章

  1. 架构师之路 — API 经济 — RESTful API 设计规范原则
  2. leetcode 289. Game of Life | 289. 生命游戏(Java)
  3. dp线和hdmi区别_HDMI铜线与光纤线有啥区别?为什么铜线传播速度更快?看完涨知识...
  4. 数据结构与算法之栈与队列:java实现
  5. vue 判断一个数是否在数组中_高级前端进阶,vue如何实现$nextTick
  6. 【记录】AutoMapper Project To OrderBy Skip Take 正确写法
  7. 央行等四部门发布资管新规全文
  8. [Android] SharedPreferences(轻量级的存储方式)
  9. 离线语音茶吧机设计应用案例
  10. C 关于unsigned int compzero = ~0;与unsigned int compzero = 0xFFFF; 的区别!
  11. 【题解】UVA11584 Partitioning by Palindromes
  12. sandboxie游戏不能运行在虚拟环境中如何解决_Sandboxie:这款曾卖一百多的知名沙盘软件,现在免费开源了...
  13. python 遗传算法多目标优化_NSGA2 遗传算法解决多目标优化
  14. 玩转console.log 如何在console.log里面插入图片
  15. oracle视图分页查询,视图以及oracle分页,练习
  16. [Git] 代码管理之 Git(一)Git 入门
  17. 人工智能数学课高等数学线性微积分数学教程笔记(4. 多元函数的微分学)
  18. 【学习笔记】GPS原理及数据处理(快速静态定位中的整周模糊度确定,FRAR和LAMBDA)
  19. 分析千万数据,我们深扒了风口上的球鞋转卖市场
  20. 学习:IT专业词汇-3

热门文章

  1. jz2440-uboot-201204版本移植【学习笔记】【原创】
  2. maven配置国内阿里云镜像
  3. 在linux oracle 10g/11g x64bit环境中,goldengate随os启动而自己主动启动的脚本
  4. 数组实用类:Arrays
  5. 让.NET程序会说话
  6. hdu 1166 敌兵布阵 树状数组 模板题
  7. 在有限多的不大于100的正整数中,找出尽量多个相加起来值介于98~102之间的组合...
  8. Android USB转串口编程
  9. 大学计算机第三单元测试题及答案,MOOC计算机网络第三单元测验(哈尔滨工业大学)...
  10. 超级马里奥游戏像素素材_《超级马里奥3D世界+库巴之怒》游戏文件尺寸相当小...