私は教会用のアプリを作成する予定ですが、これは比較的単純なもので、メインのxmlにメニューがあり、セクションの連絡先とクリップのセクションが含まれています。これで、ユーザーがクリップをクリックすると、前の週のサービスのすべてのオーディオクリップをリストしたxmlファイルにリダイレクトされ、ユーザーはクリックして聞くことができます。私は、rawフォルダーを作成し、そのフォルダー内にすべてのクリップを配置してから、rawを使用してmediaplayerクラスを介してオーディオファイルにアクセスすることを計画していました。方法ですが、それは本当にそれを行うための最良の方法でしょうか?ここにいくつか質問があります。そのようにすると、最新のクリップを挿入する必要があるため、常にコードを変更する必要がありますか?もしそうなら、これを行うためのより良い方法は何ですか?
2 に答える
すべてのクリップをassets
フォルダーに入れます。アプリでは、次のようなものを使用します。
AssetManager assets = getAssets();
String[] list = assets.list("");
これにより、アセットフォルダ内のすべてのファイルのリストが返されます。ここでは、リストビューでその配列を使用するか、適切と思われる方法でビューを作成するためにそれを処理する必要があります。
最も簡単なのは、listViewを使用し、アダプターの配列を使用してファイルのタイトルを文字通りリストに入れることです。
ListView listView = (ListView) findViewById(R.id.listView);
ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(
this,
android.R.layout.simple_spinner_item,
new ArrayList<CharSequence>(Arrays.asList(list)));
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
listView.setAdapter(adapter);
ファイルの1つを使用するとき(おそらくListView.OnItemSelectedListener()
):
assets.open(fileName);
fileNameは、選択したファイルの名前を含む文字列です。
この方法では、更新時にコードを変更する必要はありません。
アプリが50MBを超える場合は、拡張ファイルを使用する必要があります。これは、拡張ファイルのダウンロードと検証のために少し複雑な方法ですが、同様の方法で使用されます。
ユーザーが見ることができるサウンドクリップを一覧表示する場合、特定のフォルダー内のすべてのミュージッククリップを一覧表示して、このリストを取得してみませんか?サウンドクリップを追加したいときはいつでも、そのフォルダに追加するだけです。特定のサウンドクリップへの静的な参照はありません。
また、あなたは答えを受け入れ始めたいと思うかもしれません、さもなければ人々はあなたに答えるのをやめようとしています。私は答えとして私のものを選択すると言っているのではありませんが(あなたが探していたものでない限り)、少し時間を取って過去の質問に答えることができます。それらのいくつかは、いくつかの高評価の回答を持っています。