ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:131.77KB ,
资源ID:18700488      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18700488.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Android学习之ListViewWord格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Android学习之ListViewWord格式.docx

1、; /new一个ArrayAdapter,android.R.layout.simple_list_item_1为ListView显示的布局文件 ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, items); /位ListView设置Adapter lvwSimple.setAdapter(adapter);二、自定义ListView上面的那种方法只能显示简单的文字信息,显然在很多场合下都不够用,比如你想要在一个item中显示图片,显示多行文字,这就需要你自定义ListView

2、的布局了。效果图如下:步骤:1、分析你想要实现的布局效果,自定义布局文件lvw_custom.xml,该布局文件针对的是ListView的item,而不是整个ListView:xml version=1.0 encoding=utf-8? verticalTextView +id/lvw_custom_namelayout_marginLeft=layout_marginRight=layout_marginTop=textSize=25diptext=item名称/+id/lvw_custom_description10dipitem描述. LinearLayoutLinearLayout2

3、、取得用于ListView的数据集合,类型是ArrayList,每一个Map对应于ListView的一个item,多个map就构成了ListView的数据集合:/* * 取得用于ListView的数据 * return */ private ArrayList getItems() ArrayList items = new ArrayList(); for(int i = 0; i 5; i+) /* /* 每一个map中的数据对应与ListView中的一个item * /* 在我自定义的布局文件中,一个item包括: * /* 1、图片(lvw_custom_img) * /* 2、名称(

4、lvw_custom_name) * /* 3、描述(lvw_custom_description) * /* 所以map中也至少需要包括这三项数据 * HashMap map = new HashMap(); /图片,key值可以随便取,映射关系会在实例化Adapter时定义,但我喜欢将key与布局文件中定义的id取同样的值 /value值为图片的资源id map.put(lvw_custom_img, R.drawable.custom); /名称lvw_custom_name); /描述lvw_custom_descriptionitem描述 items.add(map); return

5、 items; /hashmap/hashmap3、为ListView设置SimpleAdapter:/取得ListView实例 ListView lvwCustom = (ListView)findViewById(R.id.lvw_custom); items = getItems(); /* /* new一个SimpleAdapter * /* items为数据集合 * /* R.layout.lvw_custom为自定义的ListView布局文件 * /* 第四个参数为map中德key集合 * /* 第五个参数为自定义布局文件中空间的资源id集合,与第四个参数要一一对应 * Simpl

6、eAdapter adapter = new SimpleAdapter(this, items, R.layout.lvw_custom, new String , new int R.id.lvw_custom_img, R.id.lvw_custom_name, R.id.lvw_custom_description); lvwCustom.setAdapter(adapter);三、显示非资源id类型图片的ListView通过上面的例子可以看到Map中图片项的value是资源id,这是针对项目中已存在的图片文件,为什么要用资源id而不是其他(比如Bitmap类型)呢,这是因为adapt

7、er的bindView()方法是负责解析图片并将其显示到ImageView中,但它只针对资源id类型做了判断。然而有一种情况,比如你的图片是从网络读取的Bitmap类型,你就需要对代码进行改写了。分析SimpleAdapter的源码,发现getView()方法是负责够造界面布局的的,而getView又是调用bindView来往控件里填充值的,所以我这里对bindView()方法进行改写。新建一个类CustomImageAdapter,代码完全copy自SimpleAdapter,找到bindView方法,对其进行改写:private void bindView(int position, Vi

8、ew view) final Map dataSet = mData.get(position); if (dataSet = null) return; final ViewBinder binder = mViewBinder; final View holder = mHolders.get(view); final String from = mFrom; final int to = mTo; final int count = to.length; for (int i = 0; count; final View v = holderi; if (v != null) final

9、 Object data = String text = data = null ? : data.toString(); if (text = null) text = ; boolean bound = false; if (binder ! bound = binder.setViewValue(v, data, text); if (!bound) if (v instanceof Checkable) if (data instanceof Boolean) (Checkable) v).setChecked(Boolean) data); else throw new Illega

10、lStateException(v.getClass().getName() + should be bound to a Boolean, not a + data.getClass(); else if (v instanceof TextView) / Note: keep the instanceof TextView check at the bottom of these / ifs since a lot of views are TextViews (e.g. CheckBoxes). setViewText(TextView) v, text); else if (v ins

11、tanceof ImageView) if (data instanceof Integer) setViewImage(ImageView) v, (Integer) data); /这里增加对Bitmap类型的判断 else if(data instanceof Bitmap) (ImageView)v).setImageBitmap(Bitmap)data); else setViewImage(ImageView) v, text); throw new IllegalStateException(v.getClass().getName() + is not a + view tha

12、t can be bounds by this SimpleAdapter然后像自定义ListView的步骤一样使用就行了,只是把SimpleAdapter替换为CustomImageAdapter,Map中图片项的value变为Bitmap类型了。四、Item使用不同布局的ListView通过前面的例子可以看到,ListView的所有item使用的都是相同的布局,如果想使用不同的布局呢?这个例子是我从以前做的音乐播放器代码里找的,效果图:MP3的封面图片突然不显示了,不知道咋回事。1、在Map中存放的键值对中多增加一项布局类型: * 根据playlistId获得歌曲列表,用于ListView

13、显示 * * param playlistId * 0表示所有歌曲 private List getSongList(int playlistId) / 取得符合条件的所有歌曲 List songs = getSongs(playlistId); / 构造SongList的数据 List list = new ArrayList Map map1 = new HashMap(); /这里的Type是用于在getView方法中判断并构造布局的 map1.put(type, TYPE_BTN);id, ID_RANDOM_PLAY);mainlist_btn_name随机播放mainlist_bt

14、n_img, R.drawable.list_random_icon); list.add(map1); if (songs ! int size = songs.size(); size; Song song = songs.get(i); Map map = new HashMap();, TYPE_SONG_LIST);, song.getId(); Bitmap bm = MusicHelper.getArtwork(this, song.getId(), song .getAlbumId(), true);songlist_cover_img, bm);songlist_song_n

15、ame, song.getTitle();songlist_song_album, song.getAlbum();songlist_song_artist, song.getArtist(); list.add(map); return list;/map+id/songlist_song_album+id/songlist_song_artistTextViewRelativeLayoutlist_main_btn.xml:+id/mainlist_btn_name28dip+id/mainlist_btn_img3、自定义Adapter类SongListAdapter,继承自BaseAd

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1