2012-03-04 19 views
0

ユーザーにファイル名を入力させるeditTextがありますが、すべてのファイルはrawフォルダに入っています。私はファイル名に「my_db_file」を置き換えることができますどのようにfileNameが変更されているときに(R.raw.fileName)を変更する方法

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

、生のフォルダからファイルを取得しようと、ここで問題ですか?私がこの

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

ように私は、ファイル名に「my_db_file」を置き換えることができますどのように助け

+0

[openRawResource()のfileNameを変数に設定する方法](http://stackoverflow.com/questions/9554265/how-to-set-the-filename-in-the-openrawresource-変数に) – CommonsWare

答えて

0

ファイルができます。

擬似コード:だから、ポイントはあなたがところで非常に奇妙である、やりたいために、あなたのような何かをする必要があるでしょう、です実行時に変更する必要があります。なぜあなたはファイル名を入力するようにユーザーに依頼する必要があるのか​​わかりません。私が知る限り、これは不可能です。なぜなら、生のフォルダ内のすべてのファイルは、コンパイル前に既に定義されているからです。

+0

私の答えは、実行時に行うことができます参照してください。 –

+0

@AndroidKiller私が言っていることは、開発者が既にa.txtを生のフォルダに入れておくと、a.txtを入力してそのファイルにアクセスするように要求することができるということです。しかし、開発者がそれをしなかった場合、コードはa.txtという名前のファイルを作成することはできません。だから私はOPがなぜこの機能を達成する必要があるのか​​、ユーザーが任意に入力することができないので理解していない。 – Huang

0

への感謝そんなに、それをコーディングすることができないようですか?それがこの

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

あなたはあなたの質問を説明するのひどい仕事をしてきたが、私はあなたの問題はあなたが単純に文字列が入力された「捕獲」することができないということだと思うような コードそれに私を許可していないようですユーザーがそれをopenRawResource(R.raw.whatever_the_user_typed)にあなたの呼び出しに挿入します。理由は、R.raw.filenameが静的な内部クラスの内部で静的なintを実際に参照していることを理解する必要があるという単純なことに基づいています。これが意味するのは、ファイルをrawリソースにドロップすると、Android Asset Packaging Toolはコンパイル時にこれらのリソースの独自の「コード表現」を作成し、コード内でそれらを参照できるようにします。 「生のフォルダに

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

} 
関連する問題