使用ListAdapter是ListView的适配器。

使用ListView.setAdapter()方法来设置ListView的适配器。

  1. 简单的使用

adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1);

adapter.add("hello");

adapter.add("eoe");

lv.setAdapter(adapter);

R前面的android表示使用的是系统提供给我们的资源。

  1. 使用自定义的资源

在layout包下新建一个XML,内容如下:

<?xml
version="1.0"
encoding="utf-8"?>

<ListView
xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"
>

</ListView>

然后如下所示,创建Adapter:

adapter = new ArrayAdapter<String>(this,R.layout.list_cell_view);

adapter.add("hello");

adapter.add("eoe");

lv.setAdapter(adapter);

  1. 自定义Adapter

private BaseAdapter adapter = new BaseAdapter() {

        private String[] data = {"user1","user2","user3","user4","user5","user6",

    "user7","user8","user9","user10","user11","user12","user13","user14",};

    @Override

    public View getView(int position, View convertView, ViewGroup parent) {

        TextView tv = new TextView(MainActivity.this);

        tv.setText(getItem(position));

        return tv;

    }

        

    @Override

    public
long getItemId(int position) {

        return position;

    }

        

    @Override

    public String getItem(int position) {

        return
data[position];

    }

        

    @Override

    public
int getCount() {

        return
data.length;

    }

};

程序运行时,界面上显示多少个列表项,getView方法就是被执行多少次。

getView参数中的View表示被系统回收的View。

优化:

TextView tv = null;

if (convertView!=null){

    tv = (TextView) convertView;

}else {

    tv = new TextView(MainActivity.this);

}

tv.setText(getItem(position));

  1. 创建一个可以显示图片的ListView

在layout中新建一个Linearlayout布局的文件:

<?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

android:layout_width="120dp"

android:layout_height="120dp"

android:id="@+id/icon"/>

<LinearLayout

android:layout_weight="1"

android:layout_width="0dp"

android:layout_height="match_parent"

android:orientation="vertical">

<TextView

android:id="@+id/name"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

<TextView

android:id="@+id/dec"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

</LinearLayout>

 

</LinearLayout>

创建一个Adapter:

private BaseAdapter adapter = new BaseAdapter() {

private ListCellData[] data = new ListCellData[]{

    new ListCellData("小明",     "男", android.R.drawable.ic_btn_speak_now),

    new ListCellData("小丽",     "女", android.R.drawable.ic_dialog_dialer),

};

    @Override

    public View getView(int position, View convertView, ViewGroup parent) {

        LinearLayout line = null;

        if (convertView!=null){

            line = (LinearLayout) convertView;

        }else {

            line = (LinearLayout) LayoutInflater.from(MainActivity.this).inflate(R.layout.list_cell_view, null);

        }

        ListCellData item = getItem(position);

        ImageView image = (ImageView) line.findViewById(R.id.icon);

        TextView name = (TextView) line.findViewById(R.id.name);

        TextView dec = (TextView) line.findViewById(R.id.dec);

        image.setImageResource(item.getIcon());

        name.setText(item.getUsername());

        dec.setText(item.getSex());

        return line;

    }

        

    @Override

    public
long getItemId(int position) {

        return position;

    }

        

    @Override

    public ListCellData getItem(int position) {

        return
data[position];

    }

    

    @Override

    public
int getCount() {

        return
data.length;

    }

};

Android常用组件之ListView的更多相关文章

  1. Android常用组件

    UI相关 图片 Android-Universal-Image-Loader:com.nostra13.universalimageloader:异步加载.缓存.显示图片 ImageLoader:co ...

  2. Android常用组件【转】

    UI相关 图片 Android-Universal-Image-Loader:com.nostra13.universalimageloader:异步加载.缓存.显示图片 ImageLoader:co ...

  3. Android自定义组件之ListView

    1-ListView简介 在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示.一个ListView通常有两个职责. (1)将数据填充到 ...

  4. React Native常用组件之ListView

    1. ListView常用属性 ScrollView 相关属性样式全部继承 dataSource ListViewDataSource 设置ListView的数据源 initialListSize n ...

  5. React Native常用组件之ListView组件

    学习iOS开发的同学应该都知道UITableView,几乎每个APP中都有它的存在,而且衍生出各种形态:那么同样,ListView就是在React Native中的tableView,而且更加简单和灵 ...

  6. Android常用组件之AutoCompleteTextView

    安卓组件中,凡是需要配置数据的组件,一般都是用Adapter配置. AutoCompleteTextView的使用方法与ListView类似,也是用setAdapter来设置数据. MultiAuto ...

  7. Android常用组件Broadcast介绍

    一.Broadcast简介 Broadcast是Android的四大组件之一.可分为: 1.普通广播 发送一个广播,所有监听该广播的广播接收者都可以监听到改广播. 2.异步广播 当处理完之后的Inte ...

  8. Android UI组件----自定义ListView实现动态刷新

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

  9. Android—常用组件练习

    新建一个文件“practice1.xml” 编写代码如下: <?xml version="1.0" encoding="utf-8"?> <L ...

随机推荐

  1. SCNU 2015ACM新生赛初赛【1001~1011】个人解题思路

            题目1001:       大意:已知$n$个角色,$m$种怪物种族,$k$个怪物,给出一组角色编号,编号$P_{i}$的角色能肝死编号$i$的怪物,对于给定的一组怪物编号,为了打通关 ...

  2. AngularJS(1)

    AngularJS(1) 在讲正题之前,先说一下有关angular简介方面的信息: 1. angularJS  诞生于2009年,由Misko Hevery 等人创建,后为Google所收购.是一款优 ...

  3. 基于AngularJS的个推前端云组件探秘

    基于AngularJS的个推前端云组件探秘 AngularJS是google设计和开发的一套前端开发框架,帮助开发人员简化前端开发的负担.AngularJS将帮助标准化的开发web应用结构并且提供了针 ...

  4. liunx关闭防火墙

    Redirecting to /bin/systemctl stop iptables.service systemctl stop iptables.service ?????? centos从7开 ...

  5. PCD文件去除曲率的脚本

    在写一个重建算法的时候需要用到点坐标和法向的数据文件,于是向利用pcl中的法向计算模块来生成法向.输出后法向文件中包含曲率信息,但是这是不需要的.于是自己写了一个python小脚本实现格式转换. #- ...

  6. [LeetCode] Decode Ways 解码方法

    A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' - ...

  7. 一个简单的ASP.NET MVC异常处理模块

    一.前言 异常处理是每个系统必不可少的一个重要部分,它可以让我们的程序在发生错误时友好地提示.记录错误信息,更重要的是不破坏正常的数据和影响系统运行.异常处理应该是一个横切点,所谓横切点就是各个部分都 ...

  8. 【机器学习Machine Learning】资料大全

    昨天总结了深度学习的资料,今天把机器学习的资料也总结一下(友情提示:有些网站需要"科学上网"^_^) 推荐几本好书: 1.Pattern Recognition and Machi ...

  9. Socket通信综合示例

    1用户注册客户单选择'用户注册',提示要输入用户名,密码,确认密码,校验成功后将用户信息保存到数据库,并提示数据库注册成功,请登录2用户登录客户端选择'登录以后'后,提示输入用户名和密码,验证成功则提 ...

  10. python网络编程-OSI七层模型详解

    OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...