我在res / raw中有.ogg文件,我已经实现了一个将文件保存到SD卡的功能,我想从原始文件中设置文件名。
答案 0 :(得分:10)
答案 1 :(得分:9)
使用Resources.getResourceName(id)
获取package:type/entryname
或Resources.getResourceEntryName(id)
获取条目名称(文件名)。
答案 2 :(得分:1)
如果您要从资源ID中查找名称,可以使用Resources.getResourceName()。您可以使用Context.getResources()
获取Resources对象。
就个人而言,我宁愿在strings.xml中存储一个字符串数组,并将其映射到资源ID,但这取决于你真正想要实现的目标。
答案 3 :(得分:0)
这是一个非常老的问题,但是如果其他人试图做同样的事情,这可以获取文件名:
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,支持的SDK最低为21。