Как изменить (R.raw.fileName) при изменении fileName - PullRequest
0 голосов
/ 04 марта 2012

Я получил 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 голосов
/ 04 марта 2012

Файлы в папке raw не могут быть изменены во время выполнения.Я не знаю, почему вам нужно попросить пользователя ввести имя файла.Насколько я знаю, это невозможно сделать, поскольку все файлы в папке raw должны быть определены еще до компиляции.

0 голосов
/ 04 марта 2012

как я могу заменить "my_db_file" на fileName? кажется, не позволяет мне код это так

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

Вы проделали ужасную работу по объяснению своего вопроса, но я думаю, что ваша проблема в том, что вы не можете просто "захватить" введенную пользователем строку и вставить ее в ваш вызов openRawResource(R.raw.whatever_the_user_typed). Причина в том, что вам нужно понять простую вещь: R.raw.filename на самом деле ссылается на static int внутри статического внутреннего класса. Это означает, что когда вы переносите файлы в исходные ресурсы, Android Asset Packaging Tool создает во время компиляции уникальные «представления кода» этих ресурсов, чтобы вы могли ссылаться на них в своем коде. Итак, суть в том, что для того, что вы хотите сделать, что очень странно, кстати, вам нужно сделать что-то вроде:

псевдокод:

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

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...