ListView优化 不用ViewHolder(Google 不推荐) SimpleAdapter 就真的Simple了吗
来源:互联网 发布:阿里云 机房地址 编辑:程序博客网 时间:2024/05/15 17:53
[置顶] ListView优化 不用ViewHolder(Google 不推荐) SimpleAdapter 就真的Simple了吗
分类: Java学习2013-11-09 20:46 234人阅读 评论(0) 收藏 举报
现在很多人再给ListView的时候使用BaseAdapter来填充 在getView方法中 使用ViewHolder来优化 这中方法的确很达到优化的效果但仅仅是百分之70到80
很多人忽略了SimpleAdapter或者SimpleCursorAdapter(数据源在本地数据库中)本身的使用方法 都以为使用
- SimpleCursorAdapter adapter2=new SimpleCursorAdapter(context, layout, cursor, from, to) //这样的方式
其实SimpleAdapter/SimpleCursorAdapter可以像BaseAdapter 一样 BaseAdapter 的优化效果已经在SimpleAdapter中已经实现了 不用开发者去holder.xxx=view.findViewByID
- <pre name="code" class="java">Cursor cursor=getContentResolver().query(
- CONTENT_URI,
- null,
- WATCH_DATE.getName() + "=?",
- new String[] { watchDate },
- WATCH_TIME.getName() + " DESC"
- );
- SimpleCursorAdapter adapter=new SimpleCursorAdapter(context,
- R.layout.layoutId,
- cursor,
- new String[]{
- NAME.getName(),
- CONTENT.getName(),
- SCHEDULE.getName(),
- TOTAL_TIME.getName(),
- POSITION.getName(),
- TOTAL_POSITION.getName()
- },
- new int[]{
- R.id.name,
- R.id.image,
- R.id.progress
- },SimpleCursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
- adapter.setViewBinder(new ViewBinder() {
- @Override
- public boolean setViewValue(View view, Cursor c, int columnIndex) {
- final String content = c.getString(CONTENT.getIndex());
- long schedule = c.getLong(SCHEDULE.getIndex());
- long totalTime = c.getLong(TOTAL_TIME.getIndex());
- int position = c.getInt(POSITION.getIndex());
- int totalPosition = c.getInt(TOTAL_POSITION.getIndex());
- switch (view.getId()) {
- case R.id.global_media_item_playback_progress:
- ProgressBar progress=((ProgressBar) view);
- <span style="font-family:Arial,Helvetica,sans-serif">progress</span>.setMax(100);
- if (totalPosition > 1) {
- <span style="font-family:Arial,Helvetica,sans-serif">progress</span>.setProgress(100 * position / totalPosition);
- } else {
- if (totalTime > 0) {
- schedule = schedule > totalTime ? totalTime : schedule;
- progress.setProgress((int) (100 * schedule / totalTime));
- } else {
- progress.setProgress(0);
- }
- }
- return true;
- case R.id.image:
- ImageView mCover=(ImageView)view;
- String coverUrl = c.getString(IMAGE.getIndex());
- mCover.setContentDescription(content);
- view.setFocusable(true);
- view.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent itt = new Intent(xxxx.this, xxxx.class);
- if (content != null) {
- itt.putExtra("content", content);
- startActivity(itt);
- }
- }
- });
- Utility.displayImage(coverUrl, mCover, null,R.drawable.media_player_default_media_noframe);
- return true;
- default:
- break;
- }
- return false;
- }
- });</pre><br><br>
是不是和之前的BaseAdapter神似 但是效率提高了不少 很多事情都是由系统去完成的
如果有说的不对的地方 留言哦 我会及时改正的
0 0
- ListView优化 不用ViewHolder(Google 不推荐) SimpleAdapter 就真的Simple了吗
- ListView优化 不用ViewHolder(Google 不推荐) SimpleAdapter 就真的Simple了吗
- ListView的优化(ViewHolder)
- listview的优化---viewHolder
- ListView的优化--ViewHolder
- ListView的ViewHolder优化
- ViewHolder的listview的优化
- ListView的优化:convertView + viewHolder
- ListView优化--ViewHolder的使用
- Android ListView的性能优化(ViewHolder和HashMap)
- SimpleAdapter适配的ListView(不常用)
- listview的优化及viewholder的使用
- listview的优化---viewHolder的封装
- android ListView的优化之 static ViewHolder
- 优化ListView使用到的ViewHolder
- 自定义Listview的适配器实现ViewHolder优化
- Android中优化ListView的ViewHolder模式
- ListView的性能优化-convertView和viewHolder
- android虚拟机emulator应用安装--使用adb install安装步骤和注意事项
- 常见嵌入式WEB服务器
- 寒假的ACM训练(一)
- POJ 3101 Astronomy
- 寒假第二天--线性表--不敢死队问题
- ListView优化 不用ViewHolder(Google 不推荐) SimpleAdapter 就真的Simple了吗
- 01背包 决策树模型 Python
- itercast.com学习笔记-Linux磁盘及文件系统管理
- STM8S各个模块初始化
- 黑马程序员_String对象
- 673 - Parentheses Balance
- Spring事务管理机制的实现原理-动态代理
- 如何让GCC检查类printf函数的参数
- [Java] 日期处理 04 总结