2012-03-04 7 views
1

私はファイル名を入力できるeditTextを持っていますが、すべてのファイルは生のフォルダに入っています。私はファイル名に「my_db_file」を置き換えることができますどのように、openRawResource()のfileNameを変数に設定するには

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

を生のフォルダからファイルを取得しようとしましたが、ここで問題ですか?それは私がこのようにコード化することを許可していないようです
InputStream ins = getResources().openRawResource(R.raw.fileName);
何か考えですか?助けをありがとう

+0

フォルダのリソースIDに 'R.raw.textfile'のようなものでアクセスできますか? –

答えて

2

getResources().getIdentifier()を使用して、リソース名を表すStringをリソースIDに変換します。これは、カバーの下で反射を使用することに注意してください、あなたの結果をキャッシュしてください。

+0

キャッシングに何を使用することをお勧めしますか? [LruCache](http://developer.android.com/reference/android/util/LruCache.html)は適していますか? – JJD

+0

@JJD: "キャッシュに使用するにはどうすればよいですか?" - 'int'です。結果をキャッシュすることについての私の指摘は、ほとんどの場合、ループを通過するたびにルックアップするのではなく、値をルックアップしてループの外側のローカル変数で保持するループのためです。 – CommonsWare

+0

私は 'raw'フォルダからファイルの一連のリソースIDを検索し、その内容はリストビューの項目になります。ルックアップの数を減らすために 'LruCache'を使うことを考えます。しかし、私はキャッシュの初期サイズについては不明です。 [例](http://pastebin.com/mXDeTx4u) – JJD

関連する問題