Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >android:以编程方式为recyclerview创建变量名

android:以编程方式为recyclerview创建变量名
EN

Stack Overflow用户
提问于 2016-06-06 11:41:31
回答 2查看 205关注 0票数 0

我有一个10个项目的回收视图,每个项目都有一个音频文件。

我想用它们的名字创建media2变量,比如media1,mediaplayer……回收器视图中的中位数

然后在onBindview中,我想使用对应于位置的变量名。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public void onBindViewHolder(final RecyclerView.ViewHolder viewHolder, final int position) {

    mp = media+"position"
    mp = MediaPlayer.create(viewHolder.itemView.getContext(), Uri.parse(context.getExternalFilesDir("krishna").getPath() + "/" + planDetailLists.get(i - 2).placechildplaces_audiodetailfilename));
    mp.start();
    }

我这样做的原因是,我想让每个项目记住它的mediaplayer变量,这样我就可以只播放那个特定的音频文件,而不是其他项目的音频文件。

另外我发现,当我按下另一个项目的播放按钮时,会播放其他项目的音频。如果我暂停项目[1[音频,并播放另一个items2音频,它将从暂停位置继续播放item1音频。

我无法管理每个项目的音频文件。一切都变得混乱了。

EN

回答 2

Stack Overflow用户

发布于 2016-06-06 12:27:30

为什么你想把它作为动态变量,当你可以很容易地通过mediaplayer的数组来做到这一点。

只需为mediaplayer声明一个数组变量,然后在获取数据时初始化它,然后在viewholder中使用它。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 MediaPlayer allMPlayers[];

获取数据后,将其初始化为,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 allMPlayers = new MediaPlayer[list.size()]; 

现在使用in holder,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 public void onBindViewHolder(final RecyclerView.ViewHolder viewHolder, final int position) {

      mp = allMPlayers[position];
      mp = MediaPlayer.create(viewHolder.itemView.getContext(), Uri.parse(context.getExternalFilesDir("krishna").getPath() + "/" + planDetailLists.get(i - 2).placechildplaces_audiodetailfilename));
      mp.start();
 }
票数 1
EN

Stack Overflow用户

发布于 2016-06-06 12:16:45

为此,最简单的方法是使用HashMap<String, MediaPlayer>。因此,您可以通过字符串名称从映射中放入/获取媒体播放器。

编辑:

或者记住RecyclerView.ViewHolder实现中的MediaPlayer实例。但要注意持有者的回收利用。

EDIT 2:

要在视图持有者中记住MediaPlayer实例,可以将其保存在onBindViewHolder方法中。示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public void onBindViewHolder(final RecyclerView.ViewHolder viewHolder, final int position) {
    // First cast to your view holder implementation which has a public instance variable MediaPlayer mediaPlayer;
    // Just for easy access of instance variables
    MyViewHolder holder = (MyViewHolder)viewHolder;

    if (holder.mediaPlayer == null) {
        // If there is no MediaPlayer on this view holder create a new one.
        holder.mediaPlayer = MediaPlayer.create(viewHolder.itemView.getContext(), Uri.parse(context.getExternalFilesDir("krishna").getPath() + "/" + planDetailLists.get(i - 2).placechildplaces_audiodetailfilename));
        mp.start();
    }
    else {
        // Stop playing this media player...

        // Re-use the current media player or create a new one...

        // Now play the new sound with similar code as in the IF branch above...
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37656513

复制
相关文章
以编程方式创建Vue.js组件实例
最近参与了一个Vue.js项目,项目中需要能够以编程方式创建组件。通过编程,意思是使用JavaScript创建和插入组件,而无需在模板中编写任何内容。
前端知否
2020/03/23
7.9K3
android-recyclerview嵌套recyclerview
实现思路就是在一个recyclerview的adapter中 在初始化一个recyclerview 的adapter
tea9
2022/07/16
1.8K0
android-recyclerview嵌套recyclerview
Android中RecyclerView嵌套RecyclerView
这两天在做一个新的APP,在考虑用户体验上要一个两级的列表嵌套,于就想看看RecyclerView是否能做出这样的效果,自己写了一个DEMO来做一下测试,最后的效果还是比较满意的。下面我就说一下RecyclerView嵌套RecyclerView的实现。
Vaccae
2019/07/25
7.8K0
“以终为始”的正确使用方式
以终为始是一种思维方式。如果终局确定,那么根据已知的终局就能推演出达到终局的路径,最终形成一个解决方案。举个例子,如果你要盖一栋楼,那么在盖之前的规划的大楼效果就是”终“,通过这个效果图来反推我们的建筑施工图、结构施工图等,最终形成一个完整的解决方案。
石云升
2022/08/25
5950
Android--RecyclerView嵌套RecyclerView优化
我们在使用RecyclerView嵌套RecyclerView时,会觉得卡顿,操作不是很顺畅 RecyclerView嵌套RecyclerView滑动.gif 在这个现象中,我们想要水平滑动时,却竖直
aruba
2020/07/02
1.8K0
CDN配置方式(以腾讯云为例)
CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
何叶
2021/08/20
2.2K0
CDN配置方式(以腾讯云为例)
Android 中为RecyclerView控件添加分隔线
在上一篇 RecyclerView 控件的文章中,我们看了一下ListView控件和RecyclerView控件的简单用法,那么下面我们将关注点放在RecyclerView上,毕竟RecyclerView控件在很多方面确实比ListView控件更好用。下面来看一下怎么对RecyclerView中的子项添加分隔线: 首先,我们要知道,要对RecyclerView控件中的子项添加分隔线,我们要利用RecyclerView.ItemDecoration类来实现。我们要继承RecyclerView.ItemDecoration类并且重写里面的方法来实现,一般来说,一个自定义的ItemDecoration类的基本写法:
指点
2019/01/18
2.1K0
Android 中为RecyclerView控件添加分隔线
Android学习--RecyclerView
       前面一篇总结了ListView,在这篇我们总结一些这个RecyclerView,我们就从最基本的开始,安卓团队是将RecyclerView定义在support库当中的,因此想要使用RecyclerView这个控件,首先需要在项目的build.gradle中添加相应的依赖库才行。       下面是添加RecyclerView的相应库:(这里的v7:26.0.0-alphal按照自己相应的版本添加)  image.png        添加完后记得点击一下 Sysnc Now 来同步一下  
Mr.RisingSun
2018/01/12
1K0
Android学习--RecyclerView
android-RecyclerView
引入RecyclerView包 compile ‘com.android.support:recyclerview-v7:25.1.0’
tea9
2022/07/16
3260
android-RecyclerView
【Android笔记】 RecyclerView
使用onBindViewHolder方法根据每个model的信息显示不同的背景色,发现背景色乱添加,并不是自己想要的
程序员小何SS
2021/12/17
4130
初探函数式编程---以Map/Reduce/Filter为例
函数式编程的理念:把函数当成变量来用,关注于描述问题而不是怎么实现(这样可以让代码更易读)
fliter
2023/09/05
2680
初探函数式编程---以Map/Reduce/Filter为例
【RecyclerView】 九、为 RecyclerView 设置不同的布局样式
① 自定义 RecyclerView.Adapter 泛型类型 : 适配器的泛型类型需要设置为 RecyclerView.ViewHolder , 这是所有 ViewHolder 的基类 ;
韩曙亮
2023/03/28
9140
【RecyclerView】 九、为 RecyclerView 设置不同的布局样式
以目标为导向思考解决问题的方式
最近遇到两个非常有意思的问题,虽然看起来没什么关联,但通过深入的思考,笔者发现它们还是有共性的,一起来看看这两个场景吧。
CKL的思考
2023/02/01
3250
以目标为导向思考解决问题的方式
几位测试负责人在聊关于在CICD上设置质量门禁的问题。通常情况下,关于设置接口自动化的门禁,我们会设置某个阈值(比如接口测试通过率需达到90%),来确保质量并决定是否发布这次的代码。
程序媛淼淼
2023/02/24
3370
以目标为导向思考解决问题的方式
Android之RecyclerView介绍
从Android 5.0开始,谷歌公司推出了一个用于大量数据展示的新控件RecylerView,可以用来代替传统的ListView,更加强大和灵活。
李小白是一只喵
2020/12/07
7780
Android之RecyclerView介绍
【Android】RecyclerView的使用
前言 RecyclerVie出来已经有一段时间了,它是Google在 2014 年 10 月推出Android5.0的时候推出了MaterialDesign,而RecyclerView是MaterialDesign重要组件之一,用来替代ListView和GridView。 相信还有一部分同学还在使用ListView和GridView(我前一段时间还在用),从现在开始,让我们跟他们说拜拜,开始体验RecyclerView。 优点 他可以通过设置LayoutManager来快速实现listview、gridv
Gavin-ZYX
2018/05/18
1.2K0
Android RecyclerView使用简述
  RecyclerView是Android中非常受欢迎的控件,RecyclerView是官方在Android5.0之后新添加的控件,推出用来替代传统的ListView和GridView列表控件,所以如果你还在使用ListView的话可以替换为RecyclerView了。
晨曦_LLW
2022/10/05
2.4K1
Android RecyclerView使用简述
谷歌重磅推出Android Pie,以AI为驱动
谷歌今天透露,Android P代表Android Pie,接替Android Oreo,并将最新的源代码推送到Android开源项目(AOSP)。谷歌移动操作系统Android 9.0 Pie的最新版本也将开始推出,作为对Pixel手机的无线更新。
AiTechYun
2018/08/16
8480
谷歌重磅推出Android Pie,以AI为驱动
JSBridge原理解析—以WebviewJavascriptBridge实现方式为例
JSBridge 是一种 webview 侧和 native 侧进行通信的手段,webview 可以通过 jsb 调用 native 的能力,native 也可以通过 jsb 在 webview 上执行一些逻辑。
zz_jesse
2021/07/12
1.4K0
JSBridge原理解析—以WebviewJavascriptBridge实现方式为例
点击加载更多

相似问题

Android:以编程方式创建RecyclerView将无法工作

25

android - RecyclerView项目以编程方式发布

11

swift:以编程方式创建变量名

11

以编程方式单击RecyclerView

32

ViewPager中以编程方式创建的recyclerView列表

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文