我有一个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);
非常感谢你的帮助
答案 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)
无法在运行时更改原始文件夹中的文件。我不知道为什么你需要让用户输入文件名。据我所知,这是不可能的,因为原始文件夹中的所有文件都应该在编译之前定义。