Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在文件名更改时更改(R.raw.fileName)_Android_Resources - Fatal编程技术网

Android 如何在文件名更改时更改(R.raw.fileName)

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.

我得到了一个editText,它允许用户键入文件名,但因为所有文件都在原始文件夹中。我试图从原始文件夹获取文件,问题是

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)

}