ListView的简单总结
来源:互联网 发布:mysql 登录失败锁定 编辑:程序博客网 时间:2024/06/06 02:04
ListView是Android开发中最常用的组件,基本上每一个安卓应用都会使用ListView。在使用ListView的时候一定会使用到Adapter(适配器)。
ListView中常用的适配器有三种,分别是:BaseAdapter、SimpleAdapter、ArrayAdapter。这里的适配器其实就是相当于把数据映射到ListView上的中介。
接下来就来看看ListView的具体使用和适配器的功能吧。
首先,来看几个 ListView常见的属性:
接下来我们就来看一下ListView的适配器:
1、BaseAdapter
它是基本上就是一个抽象类。其中包含4个抽象方法,分别用于设置Item的总数、获取Item对象、获取Item id、得到Item视图。在使用BaseAdapter对ListView进行适配时,需要创建一个类,并继承并重写BaseAdapter中的四个抽象方法。BaseAdapter的四个抽象方法分别是 getCount()、getItem(int position)、getItemId(int position)、getView(int position, View convertView, ViewGroup parent)。
我们现在就用一个“应用市场”的小例子看一下BaseAdapter的使用:
创建一个新的项目取名为DemoListView,然后在布局文件(activity_main.xml)里代码如下:
<ListView android:id="@+id/lv_list" android:layout_width="match_parent" android:layout_height="match_parent" android:dividerHeight="5dp"/>
其实只添加这一个组件之后效果是这样的:
再创建一个Xml文件命名为list_item.xml:
<ImageView android:id="@+id/iv_image" android:layout_width="60dp" android:layout_height="60dp" android:layout_marginLeft="10dp" /><TextView android:id="@+id/tv_name" android:layout_width="match_parent" android:layout_height="60dp" android:layout_marginLeft="5dp" android:textSize="20sp" />
然后在MainActivity中添加代码:(其中,定义了两个数组,一个用来存放App的名字,一个是用来存放App的图标,图片都放在了drawable文件夹里面了)
private ListView mListView;private int [] icons={R.drawable.jd,R.drawable.qq,R.drawable.qq_dizhu,R.drawable.sina,R.drawable.tmall,R.drawable.uc,R.drawable.weixin};//准备数据private String[] appName={"京东","QQ","斗地主","新浪","天猫","UC浏览器","微信"};@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mListView=(ListView) findViewById(R.id.lv_list); //创建一个Adapter实例 MyAdapter adapter=new MyAdapter(); //设置Adapter mListView.setAdapter(adapter);}//创建一个类并集成BaseAdapterclass MyAdapter extends BaseAdapter { //得到Item的总数 @Override public int getCount() { //返回ListView Item条目的总数 return appName.length; } @Override public Object getItem(int position) { // 返回ListView Item代表的对象 return appName[position]; } @Override public long getItemId(int position) { // 返回ListView Item条目的Id return position; } @Override public View getView(int position, View contentView, ViewGroup parent) { // 将list_item.xml文件找出来并转化成View对象 View view=View.inflate(MainActivity.this, R.layout.list_item, null); TextView mTvName=(TextView) view.findViewById(R.id.tv_name); mTvName.setText(appName[position]); ImageView mIvimage=(ImageView) view.findViewById(R.id.iv_image); mIvimage.setBackgroundResource(icons[position]); return view; }}
之后这个小小的例子就完成了,然后就让我们看一下效果吧:
2、SimpleAdapter
继承自BaseAdapter,实现了BaseAdapter的4个抽象方法。因此在使用时直接创建SimpleAdapter的实例即可。
它的构造方法为:
public Jfgbl(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to) { super(context, data, resource, from, to); }
里面的参数:
- Context context Context对象,getView()方法中需要用到Context将布局转换成View对象。
- 第二个参数:数据集合
- int resource Item布局的资源Id
-String[] from Map集合里面的key
-int[] to Item布局相应的空间Id
*SimpleAdapter只能适配Checkable、TextView、ImageView。
3、ArrayAdapter
ArrayAdapter也是BaseAdapter的子类,其用法与SimpleAdapter类似。
它的构造方法是:
public DFggv(Context context, int resource, int textViewResourceId, T[] objects) { super(context, resource, textViewResourceId, objects); }
- Context context Context对象。
- int resource Item布局的资源Id。
- int textViewResourceId Item布局相对应的控件TextView的Id。
- objects 需要适配的数据数组。
- ListView的简单总结
- ListView的简单总结
- ListView 使用方法简单总结
- Android 中ListView,BaseAdapter,CursorAdapter等的简单总结
- ListView各适配器简单总结
- listview的简单用法
- listView的简单用法
- 回归简单的ListView
- 简单的ListView使用
- 简单的ListView
- 简单的自定义listview
- ListView的简单应用
- 简单的listview实现
- listView的简单用法
- ListView的简单优化
- 简单的ListView
- Listview的简单应用
- 最简单的ListView
- 27. Remove Element
- Hive--DML
- mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解决方法
- 脚本实现文本文件在Linux、mac与window下的正常显示
- 基于ACRGIS二次开发实现地物中心坐标点批量提取
- ListView的简单总结
- python UnicodeEncodeError: 'ascii' codec can't encode characters in position 13-14: ordinal not in r
- LTspice introduction
- 高精度模板 大数的基本运算
- jdbc
- 日期格式不符合要求:Unparseable date: "3e8a4d83533744c698216535a65850c0"
- python爬虫(20)使用真实浏览器打开网页的两种方法
- 安装sql server 2016报错误1402(请验证您是否具有足够的权限访问该项/Verify that you have sufficient access to that key)的解决办法
- C#.net 关键字之virtual老司机教学