如何更改(R.raw.fileName)fileName正在更改

时间:2012-03-04 11:58:45

标签: android resources

我有一个editText,它允许用户键入文件名,但由于所有文件都在raw文件夹中。我试图从原始文件夹中获取文件,这是问题,

String fileName = editText.getText().toString; InputStream ins = getResources().openRawResource(R.raw.my_db_file);

如何将“my_db_file”替换为fileName?似乎不允许我像这样编码

InputStream ins = getResources().openRawResource(R.raw.fileName);

非常感谢你的帮助

2 个答案:

答案 0 :(得分:0)

  

如何将“my_db_file”替换为fileName?似乎不允许我这样做   像这样编码

InputStream ins = getResources().openRawResource(R.raw.fileName);

你在解释问题方面做得很糟糕,但我认为你的问题是你不能简单地“捕获”用户输入的字符串并将其插入到openRawResource(R.raw.whatever_the_user_typed)的调用中。原因是基于一个简单的事情你需要理解的是R.raw.filename实际上是指静态内部类中的静态int。这意味着当您将文件放入原始资源时,Android资产包装工具会在编译时创建这些资源的唯一“代码表示”,以便您可以在代码中引用它们。所以,重点是,为了做你想做的事,这是非常奇怪的,你需要做类似的事情:

伪代码:

switch(the user's input) {
  case: "foo"
     openRawResource(R.raw.foo)
  case: "whatever"
     openRawResource(R.raw.whatever)

}

答案 1 :(得分:0)

无法在运行时更改原始文件夹中的文件。我不知道为什么你需要让用户输入文件名。据我所知,这是不可能的,因为原始文件夹中的所有文件都应该在编译之前定义。