Java 如何通过id获取原始资源文件名?
我在res/raw中有.ogg文件,我已经实现了一个将文件保存到SD卡的功能,我想从原始文件设置文件名。它应该与一起使用以获取Java 如何通过id获取原始资源文件名?,java,android,Java,Android,我在res/raw中有.ogg文件,我已经实现了一个将文件保存到SD卡的功能,我想从原始文件设置文件名。它应该与一起使用以获取包:键入/entryname,或者获取资源。getResourceEntryName(id)以获取条目名(文件名)如果要从资源ID中查找名称,可以使用。您可以使用Context.getResources()获取资源对象 就我个人而言,我更愿意在您的strings.xml中存储一个字符串数组,并将其映射到资源ID,但这取决于您真正想要完成的任务。这是一个非常古老的问题,但如
包:键入/entryname
,或者获取资源。getResourceEntryName(id)
以获取条目名(文件名)如果要从资源ID中查找名称,可以使用。您可以使用Context.getResources()
获取资源对象
就我个人而言,我更愿意在您的strings.xml中存储一个字符串数组,并将其映射到资源ID,但这取决于您真正想要完成的任务。这是一个非常古老的问题,但如果其他人也尝试做同样的事情,这可以用于获取文件名:
Resources myResources = context.getResources();
String myFileName = myResources.getString((int)R.raw.myFile);
出于某种原因,即使R.raw.myFile
的类型为:“final int”
而Resources.getString()
接受参数“int id”
如果不将R.raw.myFile
强制转换为int,Lint将用错误标记该行
“应为字符串类型的资源”
尽管查阅了文档,但似乎没有一个重载版本的Resources.getString()
使用字符串参数
我在Android Studio v3.6.3上,支持至少21个SDK 你的问题是什么?你有一个资源ID作为int“R.raw.music”,你想从中得到字符串“music”?!这不是与OP要求的相反吗?鬼鬼祟祟的,你链接到了正确的函数,但答案本身有错误的函数。我猜这就是你如何影响作品的:)幸运的是,这不是一个色情链接,你会说我这样做是为了上诉作品;)没有名称为resources的方法。getResourceByName()