在 ListView 中突出显示多个选定/选中/激活的内容

2023-12-31

哇,当涉及到列表项选择时,文档太糟糕了。我所需要的只是能够选择并突出显示列表中的多个项目。我在网上搜索并看到了参考文献android:choiceMode="multipleChoice" http://developer.android.com/reference/android/widget/AbsListView.html#attr_android:choiceMode,我猜它允许您选择多个项目。但是我在哪里可以获取活动中选定的项目呢?为什么当我尝试使用选择多个项目时setSelection(position),之前突出显示的项目消失了?

谷歌还描述了View.setActivated(boolean) http://developer.android.com/reference/android/view/View.html#setActivated(boolean) that

请注意,激活与选择不同。选择是一个瞬态属性,表示用户当前正在与之交互的视图(层次结构)。激活是一种长期状态,用户可以将视图移入或移出。例如,在启用单选或多选的列表视图中,当前选择集中的视图将被激活。 (嗯,是的,我们对这里的术语深感抱歉。)

那么我应该使用激活而不是选择吗?这个答案 https://stackoverflow.com/a/14261981/1852456谈论“激活”只是“检查”的后HoneyComb版本。但如果你应该使用“激活”进行多项选择,那么有什么意义呢?android:choiceMode="multipleChoice"首先?


所以显然我被引导出了错误的轨道,因为我应该寻找突出显示“选中”的项目而不是“选定”的项目。因此,许多答案告诉我使用selector与我的 ListView 布局一起使用android:listSelector="@drawable/myselector,但我真正需要的是使用selector与我的行布局。其实解决办法很简单,我将其发布在下面:

可绘制/rowbackgroundselector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_activated="true"
    android:drawable="@android:color/holo_green_light"/>
</selector>
  • 请注意如何使用“state_activated”来检测某个项目是否被“选中”...

可绘制/mylistrow.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:background="@drawable/rowbackgroundselector"
    android:padding="10sp"
/>
  • 使用行背景选择器

MainActivity.onListItemClick()

public void onListItemClick(ListView l, View v, int position, long id) {
    getListView().setItemChecked(pos, true);
}

最后,确保您的适配器使用自定义行布局

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

在 ListView 中突出显示多个选定/选中/激活的内容 的相关文章

随机推荐

  • 如何使用shutil让python文件在计算后进行自我复制?

    所以我有一个 python 程序 它将素数写入 csv 文件 我现在希望我的 python 文件在运行所有内容后制作自身的副本 作为我调整原始文件时的备份 到目前为止 我通过让 python 程序创建一个新的 py 文件 然后在其中写入所有
  • 如何在服务器端 Blazor 中访问 HttpContext?

    我需要访问HttpContext在页面 cshtml 中 特别是请求 然后是 cookie 尽管可用 HttpContextAccessor总是有一个null存储在其中的值HttpContext财产 任何想法将不胜感激 提前致谢 编辑 我使
  • 检测鼠标点击 SELECTION Editable ComboBox JavaFX

    这个问题乍一看似乎很简单 但我已经困扰了几天了 所以 我的问题是 当组合框选择打开并且单击鼠标来选择选项时 我想检测鼠标单击和选择 因此 它应该做的是检测所选内容上的鼠标单击并获取所选值 PS 我的 ComboBox 的代码可以在这里看到
  • 在所有视图上访问 Viewbag 属性

    如何访问所有视图中的某些 ViewBag 属性 我想要一些信息 例如当前用户名等 可以随处访问 但不必在项目的每个 ActionResult 方法中专门定义属性 满足您的要求的最佳且直接的方法是创建一个自定义基本控制器并从此基本控制器继承您
  • 更改withProgress()生成的消息框的样式

    The withProgress 函数可以生成一个消息框 指示闪亮的应用程序正在运行 但该消息位于浏览器的右上角 文字尺寸较小 这使得该消息不那么引人注目 所以我想知道有没有什么方法可以改变这个盒子的样式 这样信息就更能表达 您可以使用 C
  • 实体框架:对 EF 中的视图进行查询(C# 代码)返回重复结果

    我正在使用 EF 来查询数据库视图 查询可以返回正确的记录数 但所有记录都是一样的 但是 当我在 sql SSMS 中运行原始查询时 一切都很好 有人可以提供一些关于可能的根本原因的线索吗 视图定义如下 CREATE VIEW dbo v
  • 更改 OpenLayers 地图中的投影

    我想将 EPSG 4326 设置为 OpenLayers 地图的投影 但当我尝试时 我总是得到 EPSG 900913 function init var options projection new OpenLayers Projecti
  • 评估哪种大小的 data.table 比 data.frame 更快

    有人可以帮助我评估使用 data table 的数据框大小的搜索速度更快吗 在我的用例中 数据帧将为 24 000 行和 560 000 行 40 行的块总是被挑选出来以供进一步使用 例子 DF是120行7列 x1到x7 的数据框 stri
  • 无法从集合中获得的最小和

    给定一个正整数集合 S 其元素不需要不同 我需要找到无法从给定集合的任何子集获得的最小非负和 例子 if S 1 1 3 7 我们可以得到0 as S 1 as S 1 2 as S 1 1 3 as S 3 4 as S 1 3 5 as
  • 如何让 JavaFX Web 浏览器显示警报和确认消息

    我的java网络浏览器不显示alert message 并确认 消息 或者 我通常使用 C Web 浏览器组件 它工作得很好 但我对此很陌生 public void openPage String url JFXPanel jfxPanel
  • MySQL按数字系列分组[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我刚刚开始学习 MySQL 我遇到了这个问题 我非常需要解决方案或只是逻辑 例如我有这张表 id a 1 1 2 2 3 3 4 5 5
  • C++ - 当向量保存对象时是否调用析构函数?

    如果我在向量内动态分配类的对象 如果我使用clear 是否会调用每个对象的析构函数 动态分配 到底是什么意思 如果您使用vector
  • 自从迁移到 VS 2019 后无法发布

    我最近卸载了 VS 2017 并安装了 VS 2019 当我通过 Web 部署发布网站时 如果失败并显示 2 条错误消息 由于未将对象引用设置到对象实例的错误 无法加载发布证书对话框 我的网站 Ui Web 部署任务失败 使用指定进程 We
  • 从位图创建可绘制对象

    ALL 按照建议here https stackoverflow com questions 23054261 creating iphone like badge notification on android我需要用我的位图制作一个可绘
  • Keycloak NodeJS 适配器忽略 X-Forwarded-Proto

    keycloak连接 https github com keycloak keycloak nodejs connect 哪一个是推荐的 NodeJS 适配器 https www keycloak org docs latest secur
  • React Native 的 Xcode 构建错误“___cxa_increment_exception_refcount”

    尝试在 Xcode 中构建设备时出现以下错误 它在模拟器上运行良好 Xcode 12 5 和 React Native 0 63 3 我尝试过干净的构建 删除并重新安装 Pod 架构arm64的未定义符号 cxa increment exc
  • 尝试安装 Pod 时出现错误“with_in Different_access”

    当我在终端上安装 pod 时 出现了这个问题 cocoapods core 1 7 2 lib cocoapods core source metadata rb 15 ininitialize undefined methodwith i
  • C# 解析时间序列数据

    我从外部 API 获取 JSON 响应 但在尝试反序列化时遇到了一些问题 这是 JSON Time Series Daily 2017 06 01 1 open 70 2400 2 high 70 6100 3 low 69 4510 4
  • Java 中解析命令行参数的代码结构

    我有一个关于代码结构的问题 我已经说了三种类型的包 A B 和 C 现在 包 A 中的类包含包含 main 函数的类 这些课程 需要一些命令行参数才能运行 在包B中 有一些类包含一些公共变量 需要在不同的时间进行配置 例如 在调用函数A之前
  • 在 ListView 中突出显示多个选定/选中/激活的内容

    哇 当涉及到列表项选择时 文档太糟糕了 我所需要的只是能够选择并突出显示列表中的多个项目 我在网上搜索并看到了参考文献android choiceMode multipleChoice http developer android com