原创: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