带复选框的自定义列表视图 - 滚动时检查状态互换

2023-12-10

我使用带有复选框的自定义列表视图。滚动列表视图时,选中状态会互换如何控制互换并将其设置为默认值,即我选择的选中项目

代码供你参考

public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub

        if (convertView == null) 
        {
            convertView=lInflater.inflate(R.layout.subtag, null);
            holder=new viewHolder();
            holder.check=(CheckBox)convertView.findViewById(R.id.subtag_checkCatagory);
            holder.check.setOnCheckedChangeListener(new OnCheckedChangeListener() {

                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    // TODO Auto-generated method stub
                    if(isChecked)
                    {
                        System.out.println("checked item:"+buttonView.getText());
                        temp.add(buttonView.getText().toString());
                    }
                    else
                    {
                        temp.remove(buttonView.getText().toString());

                    }
                }
            });
            convertView.setTag(holder);
        }
        else
        {   
            holder = (viewHolder) convertView.getTag();
        }


        holder.check.setText(list.get(position));

        return convertView;
    }

最后我找到了上述问题的答案。在此代码中检查值和TextView当我们滚动时,值不会改变ListView

Steps

  1. 代替BaseAdapter use ArrayAdapter for 自定义列表视图
  2. 为复选框选中/取消选中和文本视图获取/设置编写一个 bojo 类
  3. 专注于getview()正如我下面所规定的

Code

public View getView(int position, View convertView, ViewGroup parent) {
    View view = null;

    if (convertView == null) {
        LayoutInflater inflator = context.getLayoutInflater();
        view = inflator.inflate(R.layout.subtag, null);
        final ViewHolder viewHolder = new ViewHolder();
        viewHolder.text = (TextView) view.findViewById(R.id.subtag_textCatagory);
        viewHolder.check = (CheckBox) view.findViewById(R.id.subtag_checkCatagory);

        viewHolder.text.setOnClickListener(this);
        viewHolder.check.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

                    public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
                        TagBojo element = (TagBojo) viewHolder.check.getTag();
                        element.setSelected(buttonView.isChecked());

                        System.out.println(element.getListName());
                });
        view.setTag(viewHolder);
        viewHolder.check.setTag(list.get(position));
    } else {
        view = convertView;
        ((ViewHolder) view.getTag()).check.setTag(list.get(position));
    }
    ViewHolder holder = (ViewHolder) view.getTag();
    holder.text.setText(list.get(position).getListName());
    holder.check.setChecked(list.get(position).getSelected());
    return view;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带复选框的自定义列表视图 - 滚动时检查状态互换 的相关文章

  • Android API版本兼容性

    我希望我的应用程序能够在 Android 版本 2 1 和 2 2 上运行 在我的应用程序的一个区域中 有一个肖像式相机 生成肖像相机预览的过程在两个操作系统版本上是不同的 据我所知 具体方法如下 2 1 Camera Parameters
  • 如何在 Android 上以编程方式截取屏幕截图?

    如何不通过任何程序而是通过代码截取手机屏幕的选定区域的屏幕截图 以下代码允许将我的屏幕截图存储在 SD 卡上 并在以后满足您的任何需求 首先 您需要添加适当的权限来保存文件
  • 如何在Android中的多个Activity之间切换

    我有 8 个屏幕 我为此准备了 8 个活动 在第一个活动中我给出了这段代码 从 Is 活动切换到 IInd 在图像按钮上给出单击 public void onClick View v Intent myIntent new Intent v
  • Android 全屏对话框片段(如日历应用程序)

    我正在尝试实现如下图所示的全屏对话框 我能够显示全屏对话框 但是当显示对话框时 状态栏颜色变为黑色并且不保留原色深色 这是我的对话片段 public class IconsDialogFragment extends DialogFragm
  • 动态创建形状

    我有一个在 XML 中定义的形状对象 如下所示
  • android以编程方式打开电池设置

    我正在寻找一种从 Android 应用程序打开电池设置屏幕的方法 到目前为止我发现了两个意图 Intent ACTION POWER USAGE SUMMARY Settings ACTION BATTERY SAVER SETTINGS
  • Android Studio 无法解析存储库

    在我的项目中 我尝试使用设计支持库 我的 Gradle 文件中有 dependencies compile com android support design 当我尝试构建这个时 我收到错误 通常我会点击Install Repositor
  • 如何检查应用程序是否违反 Google 的假冒政策

    我的应用程序已从 Google Play 商店中删除 原因如下 经审核 我的应用 有 由于政策罢工而被暂停并从 Google Play 中删除 因为 它违反了假冒政策 有没有其他方法可以在发布之前检查应用程序是否遵守所有 Google 政策
  • 为什么某些手机会出现“此应用程序的配置不正确”错误?

    我已经在 android 6 中构建了我的应用程序 没有任何错误 但是当我在 android 4 4 2 中构建我的应用程序时 我收到此错误 This app has been built with an incorrect configu
  • 从 Android 模拟器使用 WebView WebGL

    据我了解 WebGL 仅在 Android Lollipop 中的 WebView 更新 Play 商店中的 WebView 组件 和较新版本 无需 Play 商店更新 中受支持 但是 我有一个使用 Android 7 1 1 的模拟器 并
  • 提交后折叠搜索视图

    我在我的应用程序中使用 searchview 没有操作栏 提交查询文本后如何折叠搜索视图 我有这些听众 Override public boolean onQueryTextSubmit String query InputMethodMa
  • Firebird 和 Android JDBC 驱动程序

    火鸟有问题 我从未与 DB 合作过 服务器 firebird 1 5 上的数据库 添加库 firebird full 2 2 4到 libs 文件夹 将其添加到 Gradle implementation fileTree libs 将其添
  • 没有 ContentProvider 的 SyncAdapter

    我想为我想要与服务器同步的内容实现 SyncAdapter 看来要做到这一点 您需要为 SyncAdapter XML 属性文件中指定的权限注册一个 ContentProvider 由于我不希望手机的其余部分可以访问此内容 因此我没有实现自
  • 如何检查 HoneyComb 或更高版本是否正在运行,并相应地调用该版本的方法?

    对于Android 3 0及更高版本 我想调用某个方法 有没有办法检查某个方法在运行的 Android 版本中是否可用 更准确地说 我的MinSDK是7 Android 2 1 TargetSDK是8 Android 2 2 我需要测试 如
  • 文本转语音无法在 Android 设备上运行

    下面是我的代码 我无法在 Kitkat 设备中听到声音 Toast 出现 但声音没有播放 我正在遵循本教程 https www tutorialspoint com android android text to speech htm ht
  • 测试奖励广告未显示 - 广告加载失败:LoadAdError(代码:3,域:com.google.android.gms.ads,消息:无广告配置。)

    我目前无法展示测试奖励广告 我正在使用激励广告Sample ad unit ID中提供的doc https developers google com admob android test ads ca app pub 3940256099
  • Paint.setTextSize(float) 使用哪种测量单位?

    我想使用在视图上绘制具有特定高度 以像素为单位 的文本Canvas 你可以简单地使用Paint setTextSize float 与像素数或者这是使用dp or sp 它使用像素 但您可以使用以下代码将其转换为 dp double get
  • 设置 JAVA_HOME 变量时出现问题

    所以我刚刚下载了 Android Studio 并尝试设置 JAVA HOME 变量以便我可以运行它 我使用的是 Windows 8 并按照我找到的所有说明进行操作 但无济于事 转到高级系统设置 gt 环境变量 然后使用包含我的 jre7
  • 在 Android 中使用 Fragment 时处理后按

    我在应用程序中使用 Android 滑动菜单和导航抽屉 并且在应用程序中使用片段而不是活动 当我打开抽屉时 单击一个项目会出现一个片段 我使用以下代码从一个片段移动到另一个片段 Fragment fragment null fragment
  • 在 Android Studio 中打开上次关闭的选项卡

    我是 Android Studio 的新手 想知道是否有任何快捷方式 选项可以重新打开上次关闭的选项卡 没有分配快捷方式 但您可以轻松分配新的快捷方式 Go to IDE settings Keymap Main menu Window E

随机推荐

  • Android onCreate() 方法在设备旋转时调用两次。 (工业控制系统)

    我正在开发 Android 平板电脑应用程序 我必须管理应用程序方向 我遇到一个问题 每次旋转设备时 onCreate 都会被调用 我在 Honeycomb 3 1 上修复了这个问题 方法是在 Manifest xml 文件中的活动标记处设
  • 如何将多个图像和文本合并为单个图像?

    我在 div 中有多个 PNG 图像 这些图像是 PNG 并根据用户选择的自定义选项作为单个图像呈现给用户 此外 添加文本也可以作为其他功能启用 它允许带有文本的 div 添加到这些图像的上方 现在我想生成一个将多个图像和文本组合在一起的图
  • 从空格分隔的文件中删除文件头匹配的列

    我有一个以空格分隔的输入文本文件 我想使用 sed 或 awk 删除列标题为 size 的列 输入文件 id quantity colour shape size colour shape size colour shape size 1
  • Bash:删除名称末尾的数字。

    我有这样的文件 外星人头骨 2224154 jpg 雪鸟 红色 箭头 雷鸟 蓝色 天使 43264 jpg 死亡空间 album 1053 jpg 如何在 bash 中删除 jpg 之前的 ID 字符串 id 始终由前面的单词 分隔 谢谢
  • 以编程方式启用/禁用硬件设备[重复]

    这个问题在这里已经有答案了 可能的重复 NET 如何禁用系统设备 Win32 API 函数以编程方式启用 禁用设备 在 C 中 有没有办法以编程方式禁用和重新启用设备 我正在寻找与您进入设备管理器并右键单击设备并禁用或启用它时发生的功能基本
  • python 按值列出而不是按引用列出[重复]

    这个问题在这里已经有答案了 让我们举个例子 a help copyright credits license b a b append XYZ b help copyright credits license XYZ a help copy
  • 我的 WordPress 网站上的 footer.php 文件出现问题

    我使用了调试 收到以下错误 PHP Fatal error Uncaught TypeError ceil Argument 1 num must be of type int float string Give in var www ht
  • 是否可以让任何数据流块类型发送多个中间结果作为单个输入的结果?

    是否可以得到TransformManyBlocks 在创建中间结果时将其发送到下一步 而不是等待整个结果IEnumerable
  • Scala 将多行字符串转换为 BigInt

    我正在尝试使用以下代码从字符串中解析 100 个 50 位数字 val input 37107287533902102798797998220837590246510135740250 463769376774900097126481248
  • 谷歌 reCaptcha IE8

    Internet Explorer 8 支持 Google reCaptcha v2 吗 如果没有 是否有任何合适的 Internet Explorer 8 兼容验证码 我发现 reCaptcha 代码尝试使用 getContext 方法的
  • 在应用程序之间发送套接字c#

    我想知道是否有一种方法 您有一个 net 应用程序名称 appA 它接收 tcp 套接字连接 然后根据某些规则将套接字连接发送到另一个 net 应用程序名为 appB 我知道这违反了很多安全和良好实践 但如果可能的话会很有趣 Proxy 一
  • 动态 LiveTile - 添加背景图像?

    在我的 Windows Phone 7 应用程序中使用动态磁贴 效果非常好 我现在正在尝试创建动态动态图块 但无法显示背景图像 当使用下面的代码时 我只得到一个黑色的瓷砖 显示我添加的文本 但不显示背景图像 图像 构建操作 设置为 内容 有
  • WPF 背景两种色调

    我正在尝试做一些如此简单的事情 但无法取得任何成果 我一直在网上搜寻 试图找到一个清晰的示例或少量信息 但我找到的每一篇文章都显示了完全相同的简单示例 我想要做的就是为列表框项目设置一个背景 该背景是两种色调 但它们之间没有渐变混合 到目前
  • Pandas 合并两个具有不同列的数据框

    我肯定在这里错过了一些简单的东西 尝试合并 pandas 中几乎具有相同列名的两个数据框 但右侧数据框有一些左侧没有的列 反之亦然 gt df may id quantity attr 1 attr 2 0 1 20 0 1 1 2 23
  • 如何重定向 cron 脚本的完整输出

    我每天 18 35 运行一个简单的 cronjob 05 18 job sh 2 gt 1 gt gt job log 所以 job sh 的输出应该写入 job log 中 在job sh中 有一些echo命令和一些python脚本被执行
  • 如何使用正则表达式验证 JTable 的第一列?

    我正在编写一个程序 我必须验证第一列是否是 IP 地址 到目前为止 我只弄清楚如何找到如何过滤行 但在将数据写入文件之前必须检查该列 有人可以帮助我吗 您可以使用InputVerifier验证表格单元格的输入 这样你就不必验证一切after
  • 重新协商速率限制

    有谁知道在哪里以及如何设置此限制 这是关于 SSL TLS 连接的 如果您使用 OpenSSL 并且希望在一定字节数后进行重新协商 您可以使用BIO set ssl renegotiate bytes 如果您希望它在经过一定时间间隔后发生
  • Kotlin 转换双精度?至双倍

    我使用 Mapbox 开发地图应用程序 我正在使用的方法使用 Point Double Double 需要获取类型不匹配 找到双倍 双倍 val lat locationComponent lastKnownLocation latitud
  • 如何动态创建选项卡

    这是 C 中的 我基本上需要从 textbox Text 制作 TabPages 例如 textBox1 Text test TabPage textBox1 Text new TabPage 这就是我想要做的 我知道这不会直接工作 但这应
  • 带复选框的自定义列表视图 - 滚动时检查状态互换

    我使用带有复选框的自定义列表视图 滚动列表视图时 选中状态会互换如何控制互换并将其设置为默认值 即我选择的选中项目 代码供你参考 public View getView int position View convertView ViewG