我已经实现了一个播放随机歌曲的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;
日志中的是一个数字而不是textview中的字符串:
Output: 2130968577
203-06 13:09:23.680: E/Output:(31456): android.resource://com.example.testproject2130968577
可以s.o.解释我这个以及如何转换int值,我用它作为资源uri路径? 提前谢谢,并为我的英语留言
答案 0 :(得分:4)
getResources()。getResourceEntryName(i)应该为您提供所需的mp3名称。
我是gen / R.java中的aapt生成的资源ID
Android Accessing Resources Doc
textView.setText(i)返回mp3资源名称的原因是因为你实际上在调用setText(int resId)
您正在传递一个int参数,Android将其解释为资源ID并为您执行getResourceEntryName转换。
答案 1 :(得分:0)
尝试使用“valueOf(i)”,否则它将尝试查找i的位置而不使用i的值。