我在res/raw文件夹中有一个名为“book1tabs.txt”的文件,但通常我不知道它的名称。然后我必须做如下事情:

InputStream in = this.mCtx.getResources().openRawResource(R.raw.book1tabs);

但是我想使用一个字符串变量,比如
String param = "book1tabs";

并且能够打开相同的输入流。
有办法吗?
谢谢

最佳答案

你可以这样做

String param = "book1tabs";

InputStream in = this.mCtx.getResources().openRawResource(mCtx.getResources().getIdentifier(param,"raw", mCtx.getPackageName()));

getIdentifier()将返回您传递的特定参数的id fromR.java
具体的做法如下
映射包名称
导航到您提供的typedef
查找在typedef中提供的资源名称
更多信息http://developer.android.com/reference/android/content/res/Resources.html

07-24 15:39