Android RecyclerView 选择第一个 Item

2023-11-26

我正在使用 RecyclerView 来实现 NavigationDrawer。

我让点击事件正常工作,但我不知道如何在应用程序启动时选择第一个项目,然后即使未显示抽屉,也可以保持所选项目高亮显示。

我所能找到的只是 RecyclerView 中的多重选择。


实际上,我刚刚在我正在开发的应用程序中实现了这一点。所以这个方法有效:

首先创建一个变量来跟踪适配器顶部当前选定的位置:

private int selectedItem;

然后在您的 Adapter 构造函数中启动您想要的 selectedItem 值:

public NavDrawerMenuListAdapter(Context context, List<NavDrawerItem> data, NavDrawerMenuListViewHolder.NavDrawerMenuClickInterface listener) {
        this.context = context;
        mLayoutInflater = LayoutInflater.from(context);
        this.navDrawerItems = data;
        this.listener = listener;
        selectedItem = 0;
    }

这里我使用 0,因为这是我菜单中的第一项。

然后在你的onBindViewHolder(NavDrawerMenuListViewHolder holder, int position)只需检查您是否selectedItem == position并将某些视图的背景设置为选定的背景,如下所示:

if (selectedItem == position) {
            holder.single_title_textview.setTextColor(0xff86872b);
            holder.nav_drawer_item_holder.setBackgroundColor(Color.DKGRAY);
        } 

在这里,我将文本颜色设置为绿色,并在启动时为相对布局父级提供灰色背景。当然,您可以按照您喜欢的任何方式对其进行自定义。

为了实现对项目的选择并保持状态,我使用以下方法:

public void selectTaskListItem(int pos) {

        int previousItem = selectedItem;
        selectedItem = pos;

        notifyItemChanged(previousItem);
        notifyItemChanged(pos);

    }

我通常从 OnClick() 方法调用此方法。

希望这可以帮助!。

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

Android RecyclerView 选择第一个 Item 的相关文章

  • 房间数据库更改未触发观察者

    当房间数据库更改时 我试图更新 RecyclerView 但是 当数据库发生更改时 不会调用 MainActivity 中定义的观察者的 onChanged 方法 如果我让 DAO 返回 LiveData 而不是 List 并在 ViewM
  • Android主线程的IO操作

    我的问题有两个 是否建议在 Android 的主线程上进行 IO 操作 或者它是否有可能导致我的应用程序崩溃 如果在主线程上执行 IO 操作不理想 我可以使用哪些其他框架 以便当我的应用程序加载时它可以执行一些基本的 IO 文件读取并将值存
  • 使用 JSONArray 还是普通数组来存储/读取数据更有效?

    我正在使用一个连接到PHP MySQL返回所有内容的服务器JSON格式 例如 用户列表作为JSONArray of JSONObject 每个对象都包含单个用户的信息 姓名 位置 电话号码等 处理这种格式的信息时 将所有内容保留在其中会更有
  • 如何替换 Android 中已弃用的 Bundle/Argument get(key) 调用

    我有以下扩展函数 允许我在应用程序活动和片段之间传递捆绑数据项 inline fun
  • 应用程序在加载 xml 布局文件的主线程中做了太多工作

    我正在制作一个 9x9 数独网格 其中 81 个单元格本身就是一个 3x3 网格 单个细胞看起来像这样 1 2 3 4 5 6 7 8 9 每个数字代表该单元格的铅笔注释 我有一个名为 cell layout xml 的文件 表示这种 3x
  • 如何使用 gradle 从 3 个子模块构建 1 个 jar

    I have 安卓工作室3 gradle 4 1 梯度工具3 classpath com android tools build gradle 3 0 1 当我有一个模块并使用 gradle 工具 2 时 我使用了 task makeJar
  • 退出设备上的 system.img

    我正在为我们部署给客户的设备 LG p509 Optimus 1 开发自动应用程序更新解决方案 我们可以控制这些设备 并且目前在它们上安装自定义内核 但不是完整的自定义 ROM 由于我们试图在设备上自动更新我们的应用程序 因此我们需要由我们
  • 如果使用grifika的ContinualCaptureActivity中的预览方式,相机预览的视野会更小

    我们知道 当相机预览比例设置为时 在相同距离下我们会得到更大的预览视野4 3代替16 9 具体如下 Android Camera API 奇怪的缩放效果 https stackoverflow com questions 20664628
  • 如何禁用操作栏上“向上”按钮的翻转?

    背景 我做了一个 应用程序管理器 https play google com store apps details id com lb app manager 替代应用程序 我希望添加 RTL 从右到左 语言的翻译 因为我知道在某些 And
  • 透明 9patch 图像:显示出线条

    我得到了一个透明的 9 补丁图像 其中有 9 条补丁线显示槽 This is the output 显然我不希望水平线可见 这就是我创建 9patch 的方式 This is the final image that is used in
  • 在新的 intel x86 android 模拟器中访问 google api

    我只是尝试在新的 x86 android 模拟器中运行我公司的应用程序 但是我们的应用程序依赖于 google 地图 API 而这在 google 随 android sdk 版本 17 提供的 x86 系统映像中不可用 我的直觉告诉我答案
  • 如何使用 SharedPreferences 保存多个值?

    我正在开发一个字典应用程序 在我的应用程序中 我假设用户想要保存最喜欢的单词 我决定使用共享首选项保存这些值 我知道 SQLite 和文件更好 但我坚持使用 SharedPreferences 所以继续使用它 下面是我的代码 Overrid
  • 在android中,将相机预览流到视图上

    我想将 Android 相机的相机预览流式传输到视图上 目的是随后使用 onDraw 将各种内容添加到视图中 我不需要随时实际捕捉图像 它不必是最高质量或每秒最大数量的帧 有谁知道如何做到这一点 将其添加到您的 xml 中
  • 移动设备上的 TensorFlow(Android、iOS、Windows Phone)

    我目前正在寻找不同的深度学习框架 特别是用于训练和部署卷积神经网络 要求是 它可以在带有 GPU 的普通 PC 上进行训练 但训练后的模型必须部署在三个主要的移动操作系统上 即 Android iOS 和 Windows Phone Ten
  • Android 中的库可以有自己的意图过滤器吗?

    我想开发一个可以包含在其他 Android 应用程序中的库来拦截某些类型的意图 是否可以 我创建了一个库和一个测试项目 两者都有自己的AndroidManifest xml文件 在库的清单中 我为操作 TEST 定义了一个意图过滤器 但是
  • Android SearchView 在启动时隐藏键盘

    我有一个小问题正在尝试解决 当我打开应用程序时 键盘会显示输入搜索视图的查询 不过 我只想在单击搜索视图时显示键盘 我该如何解决 Thanks 这对我有用 用于隐藏焦点的代码 searchView SearchView view findV
  • Android 标记如何实现拖放?

    你好 我正在 Android 中开发 MapView 应用程序 我有三个标记 我希望稍后能够使用 Google Map API getlocation function 为了尝试一下 我想使用拖放功能移动标记 然后检查位置 任何人都可以通过
  • ECDH使用Android KeyStore生成私钥

    我正在尝试使用 Android KeyStore Provider 生成的私有文件在 Android 中实现 ECDH public byte ecdh PublicKey otherPubKey throws Exception try
  • LifeCycleAware Fragment 中的片段生命周期事件

    我有一个生命周期感知片段和一个LifecycleObserver class public class MyFragment extends Fragment Override public void onCreate Nullable B
  • Android GetPTLAFormat 上的 Phonegap 错误

    我们正在开发一个使用 jQuery 移动和电话间隙的应用程序 一切似乎都工作正常 但是当在连接的 Android 手机上运行应用程序时 我们在 Eclipse logcat 中看到大量类似这样的错误 0 GetPTLAFormat inva

随机推荐

  • 如何将 na.rm 作为参数传递给 tapply?

    我想从数据框中计算平均值和标准差 其中一列用于参数 一列用于组标识符 使用时如何计算它们tapply 我可以用sd v1 group na rm TRUE 但无法适应na rm TRUE使用时进入语句tapply omit na是没有选择
  • Android 多重通知在点击时发送相同的数据

    Android 中的通知在点击时具有相同的意图 我在安装主题后发送通知 考虑我安装了 4 个主题 通知窗口中出现了 4 个通知 但是当我单击每个通知时 它将启动特定的活动 但意图是每个意图具有相同的数据 我的代码是这样的 SuppressW
  • 无法从“const wchar_t *”转换为“_TCHAR *”

    TCHAR strGroupName NULL const TCHAR strTempName NULL Assign some value to strTempName strGroupName tcschr strTempName 92
  • 管理 TPL 队列

    我有一项运行各种服务器扫描的服务 所涉及的网络可能非常庞大 数十万个网络节点 该软件的当前版本使用的是我们设计的队列 线程架构 该架构可以工作 但效率不高 尤其是因为作业可能会产生处理不好的子项 V2 即将推出 我正在考虑使用 TPL 看起
  • Java 标签不规则(可能是错误?)

    如果我们看一下Java标准 14 7 我们看到语句可能有标签前缀 例如 标签声明 标识符 声明 理论上 标签应该能够标记任何后续语句 因此 例如 以下内容将相应编译 public class Test public static void
  • OpenCV unproject 2D 指向具有已知深度“Z”的 3D

    问题陈述 我正在尝试将 2D 点重新投影到其原始 3D 坐标 假设我知道每个点的距离 继OpenCV 文档 我设法让它以零失真的方式工作 然而 当存在扭曲时 结果就不正确 目前的方法 因此 我们的想法是反转以下内容 分为以下内容 By 使用
  • 使用 jQuery 的“是”或“否”确认框

    我想要使 用 jQuery 发出 是 否 警报 而不是 确定 取消 按钮 jQuery alerts okButton Yes jQuery alerts cancelButton No jConfirm Are you sure func
  • Qt XML 中属性的顺序不正确

    我有以下代码 element clear element setTagName accountpoint element setAttribute code QString ID CONST serial element setAttrib
  • 自动构建 NuGet 包,包括引用的依赖项

    我想要运行本地 内部 NuGet 存储库 我想我已经弄清楚如何 重用 现有的 NuGet 包 方法是将它们包含在使用 NuGet 的虚拟项目中并扫描包文件以获取我的本地缓存 nupkg files but 如何创建 nuget 包 nupk
  • 将 2D 数组转换为 3D numpy 数组

    我创建了一个 numpy 数组 数组的每个元素都包含相同形状的数组 9 5 我想要的是一个 3D 数组 我尝试过使用 np stack data list map lambda x getKmers x 9 data getKmers cr
  • RabbitMQ / AMQP 中的消息组

    ActiveMQ JMS 有一个内置机制 可确保在使用竞争消费者模式时 共享公共标头 即 JMSXGroupID 标头 的消息始终由队列的同一使用者使用 队列的消费者完全不知道实际的标头值 因为具有公共标头的消息的保证是在服务器端而不是消费
  • 估计未定义表面的梯度

    我想估计一个梯度 斜率和坡向 不明确的表面 即函数未知 为了测试我的方法 这里是测试数据 require raster require rasterVis set seed 123 x lt runif 100 min 0 max 1 y
  • 为什么 std::vector::insert 使插入点之后的所有迭代器无效

    When insert ing 成std vectorC 标准确保插入点之前的所有迭代器都保持有效 只要capacity未耗尽 参见 23 2 4 3 1 或std vector 迭代器失效 不允许插入点之后的迭代器保持有效 如果容量未耗尽
  • C# 4.0 中的类属性/字段可以是匿名类型吗?

    As in public class MyClass private static var MyProp new item1 a item2 b 注意 上面的代码既不能编译也不能工作 var 不能在那里使用 它只是为了表明我的观点 Upda
  • iOS 7 中锁屏播放器的搜索栏问题

    如果我在 iOS 7 中通过 iPhone 的本机音乐播放器播放音乐并在锁定屏幕上访问它 那么我可以拖动播放器的搜索栏 即用户可以与其交互 截屏 但是 如果我从支持后台音频播放的应用程序播放音乐 则播放器的搜索栏用户交互将在锁定屏幕上禁用
  • 如何从Linux内核访问用户空间内存?

    我知道copy to user copy from user get user put user函数就是为了这个目的 我的问题是 给定一个用户空间地址 指针 我如何从内核访问该地址指向的数据 我可以想象 首先我必须确保包含的页面应该位于物理
  • 空手道-需要帮助来断言日期范围的一维数组

    我试图断言一维数组内的值 我尝试过使用 match 但看起来无法断言日期范围 下面是对象数组 2019 04 24T17 41 28 2019 04 24T17 41 27 975 2019 04 24T17 41 27 954 2019
  • 在服务器上使用socket.io和nodejs,并以apache作为反向代理

    我尝试将 Node js 与 Socket IO 结合使用来促进浏览器和客户端之间的消息传递 如下导游 但是 我必须在 Apache 后面设置 Node 反向代理 因此 我使用 example com nodejs 代替 example c
  • Google Appengine 和 rx-Java?

    rxJava 库与 Google Appengine 兼容吗 如果可以的话有什么限制吗 我发现的唯一信息是提到 grepcode 上的 部分支持 http grepcode com snapshot repo1 maven org mave
  • Android RecyclerView 选择第一个 Item

    我正在使用 RecyclerView 来实现 NavigationDrawer 我让点击事件正常工作 但我不知道如何在应用程序启动时选择第一个项目 然后即使未显示抽屉 也可以保持所选项目高亮显示 我所能找到的只是 RecyclerView