adapterView(适配器试图)-ListView

原创:http://write.blog.csdn.net/mdeditor

继承关系:

这里写图片描述

AdapterView(适配器视图):

常用的AdapterView:
1) listView
2) GridView
3) Spinner
4) AutocompleteView
5) ……….
这些view的一些共同特点:这些view在呈现数据时都需要借助adapter对象(适配器)。
AdapterView是一个常见的ViewGrop(容器)在这个容器中通常要借助一个适配器对象加载数据构建Item,然后以某种形式显示这些item。

ListView

通常显示一个ListView需要具备以下要素:
1、 ListView控件:用于列表形式显示数据。
2、 数据源:需要被显示的数据。
3、 适配器:按需获取数据源的数据,创建每一条显示的列表项,并添加到ListView中。
4、 列表项的布局文件(模块):用于设计列表项的样式。

ListView(API)是什么

1) is a AdapterView(适配器视图):允许适配器加载对象
2) is a ViewGroup(视图容器):允许包含其他view
3) is a View

ListView的作用是什么

以列表的形式显示数据(其中某一项item)

ListView对象的应用场合

1) 联系人
2) 好友列表

ListView应用的构成及原理分析

构成:
1) ListView对象(容器):用于呈现item
2) List Item对象(列表项)
item data(列表项数据)例如某个商品的价格
item view例如textview,imageview…….. 呈现数据的view
Context 资源访问对象,访问系统的数据

原理分析:
listView是一个特殊的AdapterView,它在显示数据时需要借助adapter构建item,然后以列表形式显示数据。
1) ListView(列表容器):用于呈现item
2) Adapter:用于构建item
(注:ArrayAdapter接收一个数组或者list作为参数来构建ListView,其他常用的Adapter还有ArrayAdapter,SimpleAdapter,CursorAdapter,BaseAdapter)
2.1)Context(资源访问对象):res下资源访问通过context
2.2)item view(呈现item数据的item view)
2.3)item data(列表项数据)

这里写图片描述

listView简单应用的实现

1) 获得ListView对象
A)ListView lsv=(ListView)findViewById(……)
前提需要setContentView(R.layout.xxx)先执行(先在窗口显示,才能从窗口获得)
B)ListView lsv=new ListView(context);//context资源访问对象,借助这个对象访问系统的一些资源(例如res文件目录)
setContentView(lsv);后执行(先创建对象,再在窗口显示)
2) 构建Adapter对象:
先构建ArrayAdapter数组适配器
重点关注构造方法及参数的含义
3) 关联Adapter
Lsv.setAdapter(adapter)
4) 添加监听器(有选择性的实现)
Lsv.setOnItemClickListener(…..) 点击事件
Lsv.setOnItenLongClckListener(……) 长按事件

这里写图片描述

(注:ArrayAdapter接收一个数组或者list作为参数来构建ListView,其他常用的Adapter还有ArrayAdapter,SimpleAdapter,CursorAdapter,BaseAdapter)
这里写图片描述

添加点击事件:

1、 添加点击事件方法
这里写图片描述
2、 写方法:当点击listview中的某个item时会自动执行此方法
例子:

//AdapterView<?>:指向listview
//parenat:指向谁取决于在哪个对象添加监听器
//View view:指向谁取决于传过来的xml文件根元素(xx布局)
//int position:Listview中item的位置(从0开始一次依次递增的)
public void onItemClick(AdapterView<?>  parenat ,View view ,int position ,long id){

//根据position获得item中的内容
Object item=parent.getItemAtPosition(position);
//输出item的值
Toast.makeText(this,item.toString(),1).show();

Toast.makeText(context ,text ,duration ).show();
}

添加长按事件

1、 添加长按事件方法
这里写图片描述
2、 添加继承
这里写图片描述
3、 写方法:
1) 把关闭符号隐藏在list_item_1.xml中ImageView中加隐藏属性
这里写图片描述
2) 命名一个id 想办法拿到获得这个id
3) 显示
以上是显示单个按钮
在这个页面上不显示关闭图案,当长按时显示所有关闭图案.要从listview中获得所有的item

点击回退

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值