如何在Android中使用字符串名称调用资源?

李胜柏

我现在正在尝试调用资源(在我的应用程序中,它们是mp3文件和图像)。对于mp3文件部分,我的代码如下所示(显然无法正常工作!)

if(i==1)
{
hoho= MediaPlayer.create(getApplicationContext(), R.raw.univ_day1);
hoho.start();
}
else if (i==2)
{
hoho= MediaPlayer.create(getApplicationContext(), R.raw.univ_day2);
hoho.start();  
}

...

在我的应用程序中,应用程序内部有数百个mp3文件。所以我想做的就是将代码简要地总结成这样的东西。

hoho=MediaPlayer.crate(getApplicationContet(), R.raw.univ_day+"i"); //This also looks really awkward.

如果我知道如何像上面一样写下代码。如何处理原始文件的名称和“ R.raw ....”之类的格式?如果可以,那么我也可以对图像资源应用类似的方法。

德文德拉·辛格

我们可以列出所有原始资产的名称,基本上是不带扩展名的文件名,我们可以这样做-

public void listRaw(){
    Field[] fields=R.raw.class.getFields();
    for(int count=0; count < fields.length; count++){
        Log.i("Raw Asset: ", fields[count].getName());
    }
}

接下来,您需要通过分配给该资源名称的整数来引用它们。您可以通过以下方式获取此整数:

int resourceID=fields[count].getInt(fields[count]);

这与引用R.raw.yourRawFileName所获得的int相同。

在您的代码中,您可以像这样使用-

hoho= MediaPlayer.create(getApplicationContext(), resourceID);
hoho.start();

接下来,您可以应用JAVA逻辑来播放上一个当前和下一个媒体文件。如果您在这里也需要帮助,请告诉我们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在资源文件中使用字符串插值?

如何在switch语句中使用字符串资源

PHP:如何在文件输出中使用字符串生成索引名称?

如何在接口中使用字符串枚举类型作为计算的属性名称?

如何在Vue Js中使用字符串变量模式创建输入名称字段?

如何在 JAVA 中使用字符串变量作为对象名称?

在React中如何在setState调用中使用字符串作为键

如何在Django中使用字符串调用查询集?

如何在数组中使用字符串?

如何在bash中使用字符串数组

如何在Go中使用字符串文字

如何在多个线程中使用字符串

如何在RcppEigen中使用字符串变量

如何在Swift中使用字符串获取

如何通过存储在变量中的名称调用字符串资源?

如何在Android的字符串资源中使用整数资源

如何在python中使用字符串作为数组的名称,以便可以在for循环中使用

如何在Android中使用字符串检查密码

Android如何在带有数据绑定的TextView中使用字符串变量

如何在Android中使用字符串数组引用媒体文件?

在Toast中使用字符串资源

在资源路径中使用字符串

如何在JXPath表达式中使用字符串的子字符串

如何在字符串文字中使用字符串插值?

如何在Groovy多行字符串中使用字符串插值?

如何在临时抽屉材质UI中使用字符串名称指定按钮图标

在Android Studio中使用字符串资源翻译文本

我们可以在Android中使用字符串资源进行代码注释吗?

如何在 Kotlin 中 Room Entity 的构造函数中使用 Android 资源字符串