Android 如何在文件名更改时更改(R.raw.fileName)
我得到了一个editText,它允许用户键入文件名,但因为所有文件都在原始文件夹中。我试图从原始文件夹获取文件,问题是Android 如何在文件名更改时更改(R.raw.fileName),android,resources,Android,Resources,我得到了一个editText,它允许用户键入文件名,但因为所有文件都在原始文件夹中。我试图从原始文件夹获取文件,问题是 String fileName=editText.getText().toString; InputStream ins=getResources().openRawResource(R.raw.my_db_文件) 如何将“my_db_file”替换为文件名?似乎不允许我这样编码 InputStream ins=getResources().openRawResource(R.
String fileName=editText.getText().toString;
InputStream ins=getResources().openRawResource(R.raw.my_db_文件)代码>
如何将“my_db_file”替换为文件名?似乎不允许我这样编码
InputStream ins=getResources().openRawResource(R.raw.fileName);
非常感谢你的帮助
如何将“my_db_file”替换为文件名?似乎不允许我这样做
像这样编码
您在解释问题方面做得很糟糕,但我认为您的问题在于,您不能简单地“捕获”用户输入的字符串,并将其插入到对openRawResource(R.raw.用户键入的任何内容)
的调用中。原因是您需要了解一件简单的事情,即R.raw.filename实际上指的是静态内部类中的静态int。这意味着,当您将文件放入原始资源时,Android资产打包工具会在编译时创建这些资源的唯一“代码表示”,以便您可以在代码中引用它们。所以,重点是,为了做你想做的事情,这很奇怪,顺便说一句,你需要做如下事情:
伪代码:
switch(the user's input) {
case: "foo"
openRawResource(R.raw.foo)
case: "whatever"
openRawResource(R.raw.whatever)
}
无法在运行时更改原始文件夹中的文件。我不知道你为什么需要要求用户输入文件名。据我所知,这是不可能的,因为原始文件夹中的所有文件都应该在编译之前定义。@AndroidKiller我的意思是,如果开发人员已经在原始文件夹中放置了一个文件,比如a.txt,他可以要求用户输入a.txt以访问该文件,就像您一样。但是如果开发人员没有这样做,代码就无法创建名为a.txt的文件。所以我不明白为什么OP需要实现这个功能,因为用户不能随意输入。可能重复的
switch(the user's input) {
case: "foo"
openRawResource(R.raw.foo)
case: "whatever"
openRawResource(R.raw.whatever)
}