RecyclerView 项目中每个按钮的 Onclick

2024-02-18

如何获取 RecyclerView 项目中单击按钮的位置

这是我的 onBindViewHolder :

  public void onBindViewHolder(MyViewHolder holder, int position) {
    Masar masar=masrList.get(position);
    holder.masarName.setText(masar.getMasarTitle());
    holder.masarDesc.setText(masar.getMasarDescreption());

    //How to get the Position 

    holder.masarImg.setImageResource(masar.getMasarImg());

    holder.mapBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v ) {
            //if you need position, just use recycleViewHolder.getAdapterPosition();
            Intent intent = new Intent(v.getContext(), MapsActivity.class);
            mContext.startActivity(intent);
        }
    });

}

如果您需要在绑定视图持有者只有这样你才能使用

holder.getAdapterPosition();

如果您需要在活动和片段中单击此位置,那么您必须使用从持有者到活动和片段的回调,并且必须传递相同的 getAdapterPosition();

Edit:添加了片段/活动中监听位置点击的示例代码

步骤1:制作接口或回调

public interface RecyclerViewClickListener {

    void onClick(View view, int position);
}

步骤 2:在片段或活动中初始化适配器类时,将上面创建的引用作为参数传递

public YourAdapter(List<SomeModel> modelList, RecyclerViewClickListener listener){
 this.clickListener = listener;
}

步骤 3:在 ViewHolder 或类似的视图初始化类中执行类似的操作

public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

    private Button mapBtn;

    ViewHolder(View v, RecyclerViewClickListener listener) {
        super(v);
        mapBtn = findViewById(R.id.mapBtn);
        mListener = listener;
        mapBtn.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        mListener.onClick(view, getAdapterPosition());
    }
}

您将获得在初始化适配器时传递回调引用的片段或活动中的位置。

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

RecyclerView 项目中每个按钮的 Onclick 的相关文章

  • 在应用程序简历中隐藏软键盘

    我有一个 Android 应用程序 使用 Xamarin 用 C 编写 我已将应用程序简化为包含 TextView 和用于横幅广告的 Google admod AdView 的 LinearLayout 我不希望软键盘出现在应用程序中 这不
  • GCM 向主题发送消息:TOO_MANY_TOPICS 错误

    以前 GCM 每个应用程序有 100 万个主题订阅的限制 我发现他们现在已经取消了这一限制 基于发布 订阅模型 主题消息支持 每个应用程序无限订阅 https developers google com cloud messaging to
  • 检测到设备正在振动?

    我使用下面的代码来振动设备 public void vibrator try Vibrator vibrator Vibrator getSystemService Context VIBRATOR SERVICE vibrator vib
  • Android 应用程序在后台运行时保存数据

    目前我正在开发 xmmp 客户端 当应用程序位于前台时 该客户端工作得很好 但由于事实上 当应用程序处于后台时 我在 Application 类中保存了大量数据 复杂的 ArrayList 字符串和布尔值作为公共静态 每个字段都被垃圾收集
  • 导航组件重复 NavArgs 的问题

    我有一个片段 class SomeFragment private val args by navArgs
  • 如何更新 Firebase 中的节点密钥?

    如何重命名14 04 2017 node 没有用于重命名节点的 API 您必须获取节点的值 使用新名称将其保存到数据库并删除旧节点
  • Android Studio 在编译时未检测到支持库

    由于 Android Studio 将成为 Android 开发的默认 IDE 因此我决定将现有项目迁移到 Android studio 中 项目结构似乎不同 我的项目中的文件夹层次结构如下 Complete Project gt idea
  • 如何查找 Android 设备中的所有文件并将它们放入列表中?

    我正在寻求帮助来列出 Android 外部存储设备中的所有文件 我想查找所有文件夹 包括主文件夹的子文件夹 有办法吗 我已经做了一个基本的工作 但我仍然没有得到想要的结果 这不起作用 这是我的代码 File files array file
  • OnClick 事件中的 finish() 如何工作?

    我有一个Activity一键退出Activity 通过layout xml我必须设置OnClick事件至cmd exit调用 this finish 效果很好 public void cmd exit View editLayout thi
  • Android 版 Robotium - solo.searchText () 不起作用

    我在使用 Robotium 时遇到 searchText 函数问题 我正在寻找这个字符串
  • 带有自定义阵列适配器的微调器不允许选择项目

    我使用自定义阵列适配器作为微调器 但是 当在下拉列表中选择一个项目时 下拉列表保留在那里 并且微调器不会更新 这是错误行为 与使用带有字符串的通用数组适配器相比 这是自定义类 我错过了什么吗 谢谢 public class Calendar
  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • Android构建apk:控制MANIFEST.MF

    Android 构建 APK 假设一个 apk 包含一个库 jar 例如 foo jar 该库具有 META INF MANIFEST MF 这对于它的运行很重要 但在APK中有一个包含签名数据的MANIFEST MF 并且lib jar
  • 如何在不更改手机语言的情况下更改Android应用程序语言?

    我希望用户在应用程序内选择一种语言 选择语言后 我希望字符串使用特定语言 如果我更改手机语言 那么我的应用程序将以设置的语言运行 我无法找到任何在不更改手机语言的情况下设置语言的方法 此外 一旦设置了语言 更改就应该反映出来 有人可以建议一
  • 调节麦克风录音音量

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

    我想设计像谷歌位置历史这样的用户界面 我必须为我正在使用的应用程序复制此 UIRecyclerView 每行都是水平的LinearLayout其中包含右侧的图标 线条和视图 该线是一个FrameLayout具有圆形背景和半透明圆圈Views
  • 通过 ADB 拔出设备:“找不到服务”

    我必须测试我的应用程序在打瞌睡模式下的行为 根据文档 https developer android com training monitoring device state doze standby html testing doze 我
  • 下载后从谷歌照片库检索图像

    我正在发起从图库中获取照片的意图 当我在图库中使用 Nexus 谷歌照片应用程序时 一切正常 但如果图像不在手机上 在 Google Photos 在线服务上 它会为我下载 选择图像后 我将图像发送到另一个活动进行裁剪 但在下载的情况下 发
  • Android中webview的截图方法

    我在 webview 中的 html5 canvas 上画了一些线 并尝试使用下面的代码截取 webview 的屏幕截图 WebView webView WebView findViewById R id webview webView s
  • 无法将 admob 与 firebase iOS/Android 项目链接

    我有两个帐户 A 和 B A 是在 Firebase 上托管 iOS Android unity 手机游戏的主帐户 B 用于将 admob 集成到 iOS Android 手机游戏中 我在尝试将 admob 分析链接到 Firebase 项

随机推荐

  • jqGrid 在 IE7 中加载子网格时出现问题

    我一直在努力获得 网格作为子网格 http trirand com blog jqgrid jqgrid html t14 功能正在工作 但运气不佳 我认为我在代码中做错了什么 因为它在独立测试中工作正常 但是 我终于注意到了only我的应
  • 需要 Android 活动等待获取 GPS 位置

    对不起我的英语不好 我正在尝试从 GPS 获取单个位置以添加全局变量纬度 经度 GPS 打开 但在从 GPS 检索数据之前活动仍在继续 换句话说 我的需求 仅当找到位置并且填充了经度和纬度变量时 方法 getCurrentLocation
  • 您可以通过在表中指定数据库名称来 DROP TABLE IF EXISTS 吗?

    我正在尝试使用以下查询语句删除数据库中的表 mysql query DROP TABLE IF EXISTS dbName tableName or die mysql error 但我不断收到错误 有谁知道指定 dbName tableN
  • gdb 中漂亮的打印 Fortran 动态类型

    在 gdb 中打印 Fortran 可分配多态变量的值是非常痛苦的 给出下面的程序 为了看到alloc ext 我必须执行以下操作 gdb p alloc ext 1 data 0x606260 vptr 0x400ce0 lt foo M
  • 跨浏览器 JavaScript 输入实时更改/粘贴检测

    有没有跨浏览器方式检测输入字段的实时更改 By live 我的意思是当字段失去焦点时 而不是在下一个按键时 等等 立即或类似的事情 使用 jQuery 和 change keyup bind paste 等等我可以开始实时变化检测一些浏览器
  • 如何列出iOS中uiviewcontroller中的所有子视图?

    我想列出一个中的所有子视图UIViewController 我试过self view subviews 但并没有列出所有的子视图 例如UITableViewCell没有找到 任何想法 您必须递归迭代子视图 void listSubviews
  • Ruby 参数签名中的尾随逗号

    我很好奇 Ruby 中的块中是否有尾随逗号 例如 1 2 3 4 collect x x returns 1 3 就好像第一个参数后面有一个可选参数 However proc x x arity returns 1 如果 arity 为 1
  • 同一表单组的 JQuery 验证和 Bootstrap 3

    我有一个关于 has error 类和复杂对象的问题 基本上对于单个简单类型它工作得很好 但对于复杂对象则不然 我有以下代码 我的验证 public static MvcHtmlString ValidationErrorFor
  • ggplot2 - 用上标注释文本

    我想在我的绘图中添加 R 2 值 我将标签传递给 geom text 如下所示 geom text aes x y label caption parse T data frame x 2 y 80 caption R 2 0 43 但它绘
  • 正则表达式匹配无限数量的选项

    我希望能够解析像这样的文件路径 var www index htm html php shtml 放入有序数组中 array htm html php shtml 然后生成一个替代方案列表 var www index htm var www
  • 从 WCF 中的抽象类继承而不公开该类

    我想在 WCF 中将各种类公开为复杂类型 因此我根据需要在这些类型和属性上添加 DataContract 和 DataMember 属性 但是 如果我想让它们从抽象基类继承 例如 Person 从抽象 EntityBase 继承 我会收到一
  • 具有自己的交互的自定义​​标记视图

    我正在尝试创建自己的问题视图 我发现了以下内容tutorial http www eclipse tips com how to guides 14 creating a custom marker view一切正常 但是有没有可能添加自己
  • 我可以将可变切片引用重新分配给其自身的子切片吗?

    我正在实现一个类似堆栈的结构 其中该结构保存对切片的可变引用 struct StackLike lt a X gt data a mut X 我希望能够从该堆栈中弹出最后一个元素 例如 impl lt a X gt StackLike lt
  • 我可以使用 pip install 为其他用户安装模块吗?

    我希望安装 Numpywww data用户 但我无法使用该用户登录login 我怎样才能使www data让我们使用 Numpy 模块 澄清 Numpy 可用于 root 和我的默认用户 Running pip with sudo应该为所有
  • Google Maps API:由于鼠标悬停事件,信息窗口自动闪烁/关闭

    我正在为我正在进行的一个漂亮的新项目创建多边形 每当您将鼠标悬停在 infoWindow 上时 就会出现问题 多边形上的 mouseout 事件会触发 我不希望触发 mouseout 事件 除非鼠标移动到多边形和信息窗口之外 有任何想法吗
  • 拖动并滚动角度

    hello what i want to do in my project is when i moove the rectangle on left or right i scroll on my line as shown in the
  • 如何更新 tkinter 中 matplotlib 图中的 x 限制

    我使用 TKinter 制作了一个 GUI 可以从安捷伦示波器读取示波器轨迹 我希望 x 轴在更改时间 格时更新 更新我使用的 x 和 y 数据set xdata and set ydata 是否有类似的方法来更新 x 限制 您需要了解一些
  • 如何在 iOS 和 OS X 之间创建单一共享框架

    我正在尝试创建一个框架来保存在 iOS 和 OS X 上运行的应用程序的通用实体类 目前我只是将文件包含在每个目标中 但这需要更改数据模型 以便从当前目标获取类 因为在 Swift 中 您必须在模型文件中指定具有该类的模块 这当然意味着我有
  • 与 Electron 相比,Chrome 应用程序有哪些优缺点?

    我想用 javascript 使用网络技术 编写一个桌面应用程序 并寻找 Electron 和 Chrome 应用程序之间的比较 我需要的一切似乎都可以通过 Chrome Apps 实现 但是 Electron NW js 周围有很大的宣传
  • RecyclerView 项目中每个按钮的 Onclick

    如何获取 RecyclerView 项目中单击按钮的位置 这是我的 onBindViewHolder public void onBindViewHolder MyViewHolder holder int position Masar m