Android学习之ListView显示下拉列表
来源:互联网 发布:部落冲突骷髅法术 数据 编辑:程序博客网 时间:2024/06/04 08:40
ListView显示下拉列表(一)
ListView在android中有一个很强大的功能就将获取的数据源以下拉列表的方式部署在用户屏幕上,这种机制最常见的应用 有美团、淘宝这些app,会把商品以列表形式放在屏幕中,你下拉列表,会刷新数据,一般这些数据是图文并茂的,左边是图,右边是对图中商品的描述,如图:
那么怎么实现他们呢?这里我们要说明两个两个适配器:一个叫ArrayAdapter,另个叫SimpleAdapter。这两个适配器有什么不同呢?
1.ArrayAdapter用于绑定单一的数据、数据源,只能是数组或集合类型,如第三个图是纯文字形式。
2.SimpleAdapter用于绑定复杂的数据,数据源:只能是特定泛型的集合,如第一二个图片都有图文描述,这种适配器不像其名字一样simple,反而功能更多更强大。
那么适配器是做什么用的呢?简单来说就是,数据适配器是链接数据源和视图界面的桥梁,把复杂的数据eg:数组、链表、数据库、集合等填充在指定的界面上。
适配器添加数据并呈现至视图的整个过程如下:新建适配器->添加数据源到适配器->视图加载适配器。如果点击每一列需要产生事件则要添加监听器OnItemClickListener,可以处理视图中单个条目的点击事件;如果滑动加载数据则要添加监听器OnScrollListener,用来检测滚动的变化,可以用于视图在滚动中加载数据。
先从简单的开始来介绍,要使用纯文本形式我们可以用ArrayAdapter这个适配器,源码先奉上:
public class MainActivity extends Activity implements OnItemClickListener,OnScrollListener {
private ListView lv;//下拉列表
private ArrayAdapter<String> arr_adapter;//数组适配器,这里我们定义成字符串类型
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv=(ListView)findViewById(R.id.listView); //1.新建一个适配器,新建数据源
//ArrayAdapter(上下文,当前listView中加载的每一个列表项所对应的布局文件,数据源)
/*
2.适配器加载数据源
3.视图加载适配器
*/
String arr_data[]={"科比","乔丹","魔术师","张伯伦","斯托克顿","马龙","奥尼尔","纳什","忘了爱","杀马特"};//生成一个数据源
arr_adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,arr_data);
lv.setAdapter(arr_adapter);
}
}
然后解释一下其中的一些参数,ArrayAdaper有三个参数,第一个是上下文,这里就是我们所在的activity组件中,所以写this;第二个是布局模式,我们选择自带的模式android.R.layout.simple_list_item_1;第三个就是数据源,我们在之前已经定义了一个数组里面存放了一些球星,这里数据有点多是为了展示当数据超过屏幕可以通过手指滑动屏幕的方式显示剩余的数据。
新建好适配器,只要为listView加载ArrayAdapter适配器即可。
为了使大家方便观察效果,我把xml中的ListView源码也奉上,大家可以根据自己喜好设计listView的布局(其实没几行):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/listView" />
</LinearLayout>
然后在activity中新建ArrayList并且通过ID绑定xml文件中的ListView即可(注意这个应该是整个activity操作的第一步,只有关联到xml文件后面的一系列操作才有用)
最后部署至模拟器即可
效果如下:滑动即产生剩余数据如右图。
注:感谢观看,如果有喜欢android编程的同学可以加我qq805198265,大家一块学习进步啊!
- Android学习之ListView显示下拉列表
- Android学习之listView显示下拉列表(2)(SimpleAdapter适配器)
- Android下拉列表显示
- android学习之ListView下拉刷新
- Android学习之视频音乐列表ListView
- 【Android开发学习28】界面控件之列表控件(ListView)--显示字符数组
- 【Android开发学习29】界面控件之列表控件(ListView)--显示图片和文本
- android自定义适配器——listView中显示(显示下拉列表)
- Android-Spinner下拉列表显示
- android控件之AutoCompleteTextView下拉列表显示一片空白
- android控件之AutoCompleteTextView下拉列表显示一片空白
- 学习使用ListView显示列表
- Android学习_19_采用ListView实现数据列表显示
- android学习:在ListView显示对象信息、侦听列表事件
- android客户端学习-用listview显示秒杀列表
- android之PopUpWindow显示Listview(文件列表)
- Android中使用ListView显示列表之SimpleAdapter的使用
- Android开发入门之采用ListView实现数据列表显示
- 全局变量和局部变量有什么区别?是怎么实现的?操作系统和编译器是怎么知道的?
- 【hdu 1300】pearl(需要深刻理解dp,同龟兔赛跑)
- java 中Long和Integer不得不知道的秘密
- typedef与#define的使用时注意点
- HTTP Verbs: 談 POST, PUT 和 PATCH 的應用
- Android学习之ListView显示下拉列表
- Linux 守护进程的原理与实现
- 使用 UITableView 创建表格应用演练(1)——一个简单的表格应用
- ffmpeg debug 方法
- ORACLE 备份恢复命令imp/exp
- 递归搜索字符数组中的最大字符递归搜索字符数组中的最大字符
- Java接口编程参数类型选择
- ASP.NET用URLRewriter.dll实现伪静态
- ksoap2引起android系统Out of memory