Android常用组件之ListView
使用ListAdapter是ListView的适配器。
使用ListView.setAdapter()方法来设置ListView的适配器。
- 简单的使用
|
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1); adapter.add("hello"); adapter.add("eoe"); lv.setAdapter(adapter); |
R前面的android表示使用的是系统提供给我们的资源。
- 使用自定义的资源
在layout包下新建一个XML,内容如下:
|
<?xml <ListView 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); |
- 自定义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 return position; }
@Override public String getItem(int position) { return }
@Override public return } }; |
程序运行时,界面上显示多少个列表项,getView方法就是被执行多少次。
getView参数中的View表示被系统回收的View。
优化:
|
TextView tv = null; if (convertView!=null){ tv = (TextView) convertView; }else { tv = new TextView(MainActivity.this); } tv.setText(getItem(position)); |
- 创建一个可以显示图片的ListView
在layout中新建一个Linearlayout布局的文件:
|
<?xml <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"
<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 return position; }
@Override public ListCellData getItem(int position) { return }
@Override public return } }; |
Android常用组件之ListView的更多相关文章
- Android常用组件
UI相关 图片 Android-Universal-Image-Loader:com.nostra13.universalimageloader:异步加载.缓存.显示图片 ImageLoader:co ...
- Android常用组件【转】
UI相关 图片 Android-Universal-Image-Loader:com.nostra13.universalimageloader:异步加载.缓存.显示图片 ImageLoader:co ...
- Android自定义组件之ListView
1-ListView简介 在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示.一个ListView通常有两个职责. (1)将数据填充到 ...
- React Native常用组件之ListView
1. ListView常用属性 ScrollView 相关属性样式全部继承 dataSource ListViewDataSource 设置ListView的数据源 initialListSize n ...
- React Native常用组件之ListView组件
学习iOS开发的同学应该都知道UITableView,几乎每个APP中都有它的存在,而且衍生出各种形态:那么同样,ListView就是在React Native中的tableView,而且更加简单和灵 ...
- Android常用组件之AutoCompleteTextView
安卓组件中,凡是需要配置数据的组件,一般都是用Adapter配置. AutoCompleteTextView的使用方法与ListView类似,也是用setAdapter来设置数据. MultiAuto ...
- Android常用组件Broadcast介绍
一.Broadcast简介 Broadcast是Android的四大组件之一.可分为: 1.普通广播 发送一个广播,所有监听该广播的广播接收者都可以监听到改广播. 2.异步广播 当处理完之后的Inte ...
- Android UI组件----自定义ListView实现动态刷新
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...
- Android—常用组件练习
新建一个文件“practice1.xml” 编写代码如下: <?xml version="1.0" encoding="utf-8"?> <L ...
随机推荐
- java基础算法之插入排序
一.插入排序介绍 插入排序(Insertion Sort)是一种简单直观的排序算法.它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入.插入排序在实现上,通 ...
- 产生冠军 hdoj_2094 巧用set
产生冠军 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- [No0000A5]批处理常用命令大全
1.Echo 命令打开回显或关闭请求回显功能,或显示消息.如果没有任何参数,echo 命令将显示当前回显设置.语法echo [{on|off}] [message]Sample: echo off e ...
- jQuery获取margin-top和padding-top的值
var bordT = $('img').outerWidth() - $('img').innerWidth(); var paddT = $('img').innerWidth() - $('i ...
- Weekly Traning Farm 16
先安利一下这套比赛,大概是doreamon搞的,每周五晚上有一场,虽然没人做题目质量挺高的 http://codeforces.com/group/gRkn7bDfsN/contests(报名前要先报 ...
- jquery validate表单验证插件-推荐
1 表单验证的准备工作 在开启长篇大论之前,首先将表单验证的效果展示给大家. 1.点击表单项,显示帮助提示 2.鼠标离开表单项时,开始校验元素 3.鼠标离开后的正确.错误提示及鼠标移入时的帮 ...
- 使用iTerm2快捷连接SSH
iTerm2和Mac自带的Terminal差不多,但是功能更强大,无论透明度.字体.配色.分屏等都可以设置,除了这些花哨的功能外,最近新学了一招,就是可以通过Profiles的设置打开就执行写好的脚本 ...
- [LeetCode] Coin Change 硬币找零
You are given coins of different denominations and a total amount of money amount. Write a function ...
- python优先队列,队列和栈
打印列表的疑问 class Node: def __str__(self): return "haha" print([Node(),Node()]) print(Node()) ...
- 使用PrintDocument进行打印
背景: 1.在winform中,需要直接调用打印机,进行打印处理 2.找了很多实现方法是web的处理,然后查了下度娘,发现可以使用自带类PrintDocument进行处理,所以就有了这篇文章 说明: ...