1

ランダムな曲を再生するandroidプロジェクトを実装しました。だから私はこのようなint配列を持っています:

int [] playlist_stadt    = {R.raw.black_a, R.raw.black_b, R.raw.black_c};

私が書いたランダムプレイのために:

Random r = new Random();
int i = playlist_stadt[r.nextInt(playlist_stadt.length)];
PlayMusic(i);

私が理解していないことは次のとおりです:

textView.setText(i);

textviewは示しています:res/raw/black_c.mp3

Log.e("Output: ", "" + i);
String uriPath = "android.resource://" + getPackageName() + i;

ログには私が数字であり、テキストビューと同じ文字列ではありません。

Output: 2130968577
203-06 13:09:23.680: E/Output:(31456): android.resource://com.example.testproject2130968577

これとint値を変換する方法を説明して、リソースURIパスとして使用できますか?事前に感謝し、私の英語をお詫びします

4

2 に答える 2

4

getResources()。getResourceEntryName(i)は、探しているmp3名を取得する必要があります。

iは、gen/R.javaのaaptによって生成されたリソースIDです。

Androidアクセスリソースドキュメント

textView.setText(i)がmp3リソース名を返す理由は、実際にsetText(int resId)を呼び出しているためです。

setText(int resId)JavaDoc

AndroidがリソースIDとして解釈し、getResourceEntryName変換を行うintパラメーターを渡します。

于 2013-03-07T08:59:24.107 に答える
0

「valueOf(i)」を使用してみてください。そうしないと、iの場所が検索され、iの値は使用されません。

于 2013-03-07T08:52:04.963 に答える