将int值转换为资源uri

时间:2013-03-07 08:49:20

标签: java android uri

我已经实现了一个播放随机歌曲的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路径? 提前谢谢,并为我的英语留言

2 个答案:

答案 0 :(得分:4)

getResources()。getResourceEntryName(i)应该为您提供所需的mp3名称。

我是gen / R.java中的aapt生成的资源ID

Android Accessing Resources Doc

textView.setText(i)返回mp3资源名称的原因是因为你实际上在调用setText(int resId)

setText(int resId) JavaDoc

您正在传递一个int参数,Android将其解释为资源ID并为您执行getResourceEntryName转换。

答案 1 :(得分:0)

尝试使用“valueOf(i)”,否则它将尝试查找i的位置而不使用i的值。