子类化 SimpleCursorAdapter 以包含 ConvertView 以节省内存

2023-12-09

我一直在搜索示例和教程,但我似乎无法理解如何在子类 SimpleCursorAdapter 中处理回收。我知道,对于常规 ArrayAdapter,您可以检查 ConvertView 是否为 null,如果为 null,则从 xml 中膨胀,如果不为 null,则回收,但我在可视化它如何与 SimpleCursorAdapter 子类中的 from 和 to 数组一起使用时遇到了一些麻烦。我试图从 Commonsware 的《忙碌的程序员 Android 开发指南》中找出这一点,但没有成功。如果有人知道任何提示、示例或教程,我将很高兴看到它们。


我无法找到任何很好的例子来子类化 SimpleCursorAdapter 以使用 ConvertView 回收方法,所以我最终还是子类化了 CursorAdapter。这实际上对我的实现非常有效,并且速度极快,内存使用量显着减少。回收视图确实有效,我强烈推荐!

这是我的实现示例:

 private static class MyNiftyAdapter extends CursorAdapter
    {
        private LayoutInflater mInflater;
        private Cursor cur;

        public MyNiftyAdapter(Context context, Cursor c) {
            super(context,c);       
            this.mInflater = LayoutInflater.from(context);
            this.cur = c;
        }
        public MyNiftyAdapter(Context context, Cursor c, boolean autoRequery)
        {
            super(context, c, autoRequery);
            this.mInflater = LayoutInflater.from(context);
            this.cur = c;
        }
        @Override
        public View getView(int position, View convertView, ViewGroup parent)
        {
            ViewHolder viewHolder;
            if(convertView == null)
            {
                convertView = this.mInflater.inflate(R.layout.chamber_item, null);
                viewHolder = new ViewHolder();
                viewHolder.name = (TextView)convertView.findViewById(R.id.Name);
                viewHolder.city = (TextView)convertView.findViewById(R.id.city);
                viewHolder.state = (TextView)convertView.findViewById(R.id.state);
                viewHolder.country = (TextView)convertView.findViewById(R.id.country);
                convertView.setTag(viewHolder);
            }else
            {
                viewHolder = (ViewHolder)convertView.getTag();
            }
            this.cur.moveToPosition(position);

            viewHolder.name.setText(this.cur.getString(this.cur.getColumnIndex(MyDBHelper.NAME)));          
            viewHolder.city.setText(this.cur.getString(this.cur.getColumnIndex(MyDBHelper.CITY)));
            viewHolder.state.setText(this.cur.getString(this.cur.getColumnIndex(MyDBHelper.STATE)));
            viewHolder.country.setText(this.cur.getString(this.cur.getColumnIndex(MyDBHelper.COUNTRY)));            

            return convertView;
        }
        /* (non-Javadoc)
         * @see android.widget.CursorAdapter#bindView(android.view.View, android.content.Context, android.database.Cursor)
         */
        @Override
        public void bindView(View view, Context context, Cursor cursor) {
            // Dont need to do anything here

        }
        /* (non-Javadoc)
         * @see android.widget.CursorAdapter#newView(android.content.Context, android.database.Cursor, android.view.ViewGroup)
         */
        @Override
        public View newView(Context context, Cursor cursor, ViewGroup parent) {
            // Dont need to do anything here either
            return null;
        }

        static class ViewHolder
        {
            TextView name;
            TextView city;
            TextView state;
            TextView country;
        }
    }

现在,列表中的每一行都完全按照我想要的方式显示名称、城市、州和国家/地区。希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

子类化 SimpleCursorAdapter 以包含 ConvertView 以节省内存 的相关文章

  • Firebase Analytics 禁用受众国家/地区跟踪

    我正在开发一个严格不允许位置跟踪的应用程序 我想使用 Firebase Analytic 的其他功能 例如 PageTransitions 和 Crashalitics 但如果我无法禁用受众位置跟踪 我就无法使用其中任何功能 这是我在 An
  • Phonegap - 如何将.txt文件保存在Android手机的根目录中

    我正在尝试使用phonegap 将 txt 文件保存在Android 手机的根目录中 我已经安装了这些插件 cordova plugin file 和 cordova plugin file transfer 在 config xml 文件
  • Delphi XE7 Android 全屏(隐藏软键)

    如何在XE7中全屏显示 隐藏顶部 标题 和底部 软键 工具栏 在 XE6 中 我可以通过在应用程序部分写入来调整 AndroidManifest 以使我的应用程序全屏显示并且没有操作栏 android theme android style
  • 在 Android 中使用 DataOutputStream 在 POST 正文中发送特殊字符 (ë ä ï)

    我目前正在开发一个具有大量服务器端通信的 Android 应用程序 昨天 我收到一份错误报告 称用户无法发送 简单 特殊字符 例如 我搜索过但没有找到任何有用的东西 可能重复 没有答案 https stackoverflow com que
  • 在意图过滤器中使用多个操作时的默认值

    尝试理解 Android 中的意图和操作并查看文档 http developer android com guide topics intents intents filters html 但我一直看到的一件事是定义了多个操作的意图过滤器
  • TextView 之间有分隔线

    我正在尝试在 android studio 中创建以下布局 因为我对 android 东西还很陌生 所以我第一次尝试使用 LinearLayout 并认为这可能无法实现 现在我正在尝试使用RelativeLayout 我已经用颜色创建了这个
  • CookieManager.getInstance().removeAllCookie();不删除所有cookie

    我在应用程序的 onCreate 中调用 CookieManager getInstance removeAllCookie 我遇到了一个奇怪的问题 我看到 GET 请求中传递了意外的 cookie 值 事实上 cookie 值是一个非常非
  • 在 Jetpack Compose 中启动动画矢量 Drawable

    我有一个动画矢量可绘制R drawable my anim 我想在 Jetpack Compose 中展示并开始 可绘制对象显示 渲染正确 但动画未启动 这是撰写视图 Composable fun SplashView Surface mo
  • Android 启动器快捷方式

    我制作了一个简单的打卡 打卡时钟应用程序 我想向用户添加在主屏幕上创建快捷方式的选项 该快捷方式将切换应用程序的状态 超时 超时 但我根本不希望此快捷方式在屏幕上打开应用程序 这是我的 setupShortcut private void
  • 检查 Android 手机上的方向

    如何查看Android手机是横屏还是竖屏 当前配置用于确定要检索的资源 可从资源中获取Configuration object getResources getConfiguration orientation 您可以通过查看其值来检查方向
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • php如何生成动态list()?

    根据我的理解 这就是 list 的工作原理 list A1 A2 A3 array B1 B2 B3 所以在帮助下list 我们可以相应地从数组中分配值 这是我的问题 如何生成动态list 1 基于数据库返回结果 我不确定有多少 但我将其全
  • Android相机意图:如何获取全尺寸照片?

    我正在使用意图来启动相机 Intent cameraIntent new Intent android provider MediaStore ACTION IMAGE CAPTURE getParent startActivityForR
  • Android构建apk:控制MANIFEST.MF

    Android 构建 APK 假设一个 apk 包含一个库 jar 例如 foo jar 该库具有 META INF MANIFEST MF 这对于它的运行很重要 但在APK中有一个包含签名数据的MANIFEST MF 并且lib jar
  • 材质设计图标颜色

    应该是哪种颜色 暗 材质图标 在官方文档上 https www google com design spec style icons html icons system icons https www google com design s
  • 调节麦克风录音音量

    我们正在尝试调整录音时的音量级别 麦克风似乎非常敏感 会接收到很多静电 我们查看了 setVolumeControlStream 但找不到传入其中来控制麦克风的流 将您的音频源设置为 MIC using MediaRecorder Audi
  • 如何创建像谷歌位置历史记录一样的Android时间轴视图?

    我想设计像谷歌位置历史这样的用户界面 我必须为我正在使用的应用程序复制此 UIRecyclerView 每行都是水平的LinearLayout其中包含右侧的图标 线条和视图 该线是一个FrameLayout具有圆形背景和半透明圆圈Views
  • Android - 将 ImageView 保存到具有全分辨率图像的文件

    我将图像放入 ImageView 中 并实现了多点触控来调整 ImageView 中的图像大小和移动图像 现在我需要将调整大小的图像保存到图像文件中 我已经尝试过 getDrawingCache 但该图像具有 ImageView 的大小 我
  • python中有没有一种方法可以将存储在列表中的正则表达式模式列表应用到单个字符串?

    我有一个正则表达式模式列表 存储在列表类型中 我想将其应用于字符串 有谁知道一个好方法 将列表中的每个正则表达式模式应用于字符串 和 如果匹配 则调用与列表中该模式关联的不同函数 如果可能的话我想用 python 来做这件事 提前致谢 im
  • 无法运行我的应用程序,要求选择 Android SDK

    今天我已经安装了Android Studio 金丝雀 1 现在我无法运行我的应用程序 将出现以下对话框 我已经通过 文件 gt 项目结构 gt Android SDK 位置 设置了正确的 SDK 位置 期待您的帮助来解决这个问题 警告对话框

随机推荐

  • 动态显示谷歌地图上的标记 -Rails 3.2

    我有一个工作代码 使用它在谷歌地图上显示多个标记geocoder例如 nearbys Place near params address 5 order gt distance units gt km nearbys first 5 我使用
  • WPF:仅使用通过“AddFontMemResourceEx”安装的字体进行处理

    在WPF中我们想使用ttf字体作为嵌入式资源 无需将它们复制或安装到系统中 也无需实际将它们写入磁盘 没有内存泄漏问题 没有详细说明的解决方案 如何在 WPF 应用程序中包含外部字体而不安装它 由于 WPF 内存泄漏 在这种情况下可用 使用
  • 如何用单词“and”替换最后一次出现的 , ?

    如何用单词 and 替换最后一次出现的 你能给我一个主意吗 我有 3 个复选框 1 个富文本框 显示输出 1 个按钮 阿帕里 或 卡马拉努伊根 或 拉洛 卡加延 阿帕里 卡马拉努伊甘 或卡加延 阿帕里 卡马拉努伊甘 拉洛 我希望输出如下 C
  • Python正则表达式匹配列表中的多个单词

    我有一个单词列表和一个字符串 并且想从原始列表中取回在字符串中找到的单词列表 Ex import re lof terms car car manufacturer popular str content This is a very po
  • 使用GPS(LocationManager)如何获取当前时间?

    我正在开发一款 GPS 应用程序 它将每隔一小时向服务器发送一次位置数据 在此我使用以下代码 location getLatitude location getLongitude location getTime 使用此代码 我可以正确获取
  • 多线程状态相关问题

    我得到了以下代码片段 public class ThreadTest private static class Thread01 extends Thread private Thread02 th2 public int foo 0 pu
  • 可以带参数运行吗?

    我需要一个 接受参数的可运行程序 尽管我知道这样的可运行程序并不真正存在 这可能表明我的应用程序设计存在根本缺陷和 或我疲惫的大脑中的精神障碍 所以我希望在这里找到一些关于如何完成类似以下事情的建议 without违反基本的面向对象原则 p
  • 如何将位图旋转 90 度

    android中有一个声明canvas drawBitmap visiblePage 0 0 paint 当我添加canvas rotate 90 没有效果 但如果我写 canvas rotate 90 canvas drawBitmap
  • 如何使用 java spring 进行encodeURI/decodeURI?

    我有一个用 java spring 制作的简单 api 它接收文本并将其保存在数据库中 以及一个 javascript 中的应用程序 用于格式化文本并将其发送到 api 我有多种语言的文本 中文 日文 并且我遇到了特殊字符的问题 所以我在
  • 如何使用win32com在python中打开写入保留的excel文件?

    我正在尝试使用 python 中的 win32com 打开写保护的 ms excel 2007 文件 我知道密码 我可以通过用户在 Excel 对话框中输入密码来打开它 我希望能够在没有任何用户交互的情况下打开该文件 我已经尝试了以下方法
  • 加密 as3 flash .swf

    我正在尝试保护我的 as3 swf flash 文件代码免遭反编译 但我不能在商业编译器上花费 如何免费加密我的 swf 我残酷诚实的回答 甚至不要尝试 如果某人有能力使用您的应用程序中的资源或代码 那么他们将具备反编译您的 SWF 并获得
  • 在 Windows 10 中使用 JDK 16 在 Netbeans 12.4 中安装 C/C++ 插件时出错

    我想在 Windows 10 中使用 JDK 16 在 Netbeans 12 4 中安装 C C 插件 我在安装 C C 插件期间遇到错误 窗户 10网豆 12 4JDK 16 0 1 我附上照片 您遇到此问题是因为 NetBeans 正
  • wpf 进度条在上次 ProgressChanged 时未更新

    我制作了一些 UI 其中有 ProgressBar 使用MVVM模式 XAML
  • 更改 C++ 中 const 变量的值[重复]

    这个问题在这里已经有答案了 我正在尝试更改定义为 int const 的变量的值 如下所示 const int w 10 int wp const cast
  • 如何在C#中将XML转换为Html?

    这是将xml转换为html的最佳方法 目前我正在使用Xpathnavigator和xpathnodeiterator来查询和遍历xml 这工作正常 但我需要将此 xml 转换为 html 并在浏览器中显示它和一些表格 这是实现此目的的最佳方
  • DocuSign REST api 取消分组选项卡

    我需要取消在 草稿 状态下创建的信封中的选项卡的分组 这样 如果我在一页上移动一个 SignHere 选项卡位置 所有其他 SignHere 都不会移动 我执行了 GET 请求来获取选项卡 然后执行 PUT 请求来更新选项卡 通信成功 但选
  • 单击鼠标获取matplotlib绘图python的坐标

    我一直在尝试根据 matplotlib 绘图比例而不是像素获取鼠标 x y 坐标到变量 但它只返回整数分量 例如 0 0 或 1 0 我想返回准确的数字 例如 0 1245 这是我的代码 import matplotlib import T
  • 类似 Instagram 的导航栏 (iOS 7)

    我试图产生同样的效果 就像 Instagram 的标题中那样 我怎样才能做到这一点 我尝试了很多解决方案 Best https github com andreamazz AMScrollingNavbar 但它有一个大问题 它使用 uip
  • Python 中的 MemoryError 钩子?

    有没有一种方法可以全局捕获 MemoryError 异常 以便库可以清除缓存而不是让用户代码看到 MemoryError 我正在用 Python 开发一个内存缓存库 它存储非常大的对象 以至于用户通常希望使用所有可用的 RAM 来简化脚本和
  • 子类化 SimpleCursorAdapter 以包含 ConvertView 以节省内存

    我一直在搜索示例和教程 但我似乎无法理解如何在子类 SimpleCursorAdapter 中处理回收 我知道 对于常规 ArrayAdapter 您可以检查 ConvertView 是否为 null 如果为 null 则从 xml 中膨胀