如何列出android中raw文件夹中的项目?我已将原始文件夹中的项目添加到ListView
,但ID显示在ListView
而不是mp3文件中。
代码:
public class Listview extends ListActivity {
public static ArrayList<Integer> list1 = new ArrayList<Integer>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Uri uri=Uri.parse("android.resource://" + getPackageName() + "/" +2131034112);
Log.i("uri", ""+uri);
int aInt=R.raw.a;
int bInt=R.raw.b;
int gInt=R.raw.g;
String aString=Integer.toString(aInt);
Log.i("aString", ""+aString);
list1.add(aInt);
list1.add(bInt);
list1.add(gInt);
setListAdapter(new ArrayAdapter<Integer>(this, R.layout.listview,list1));
ListView listView = getListView();
Log.i("value", ""+list1);
/*listView.setAdapter(adapter)*/
listView.setTextFilterEnabled(true);
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String product = ((TextView) view).getText().toString();
int [] resID= {R.raw.a,R.raw.b,R.raw.g};
MediaPlayer mediaPlayer=MediaPlayer.create(Listview.this,resID[position]);
mediaPlayer.start();
Intent intent = new Intent (Listview.this,PlaySoloActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
list1.clear();
}
});
}
}
结果输出:
2131034112
2131034113
2131034114
期望的输出:
a.mp3
b.mp3
g.mp3
任何人都可以帮我吗?提前谢谢。
答案 0 :(得分:1)
您可以使用以下方法获取原始目录中的所有资源名称。唯一的缺点是它只返回没有扩展名的名称,但是如果你的所有文件都有相同的扩展名,你知道你可以添加它。
private String[] getAllRawResources() {
Field fields[] = R.raw.class.getDeclaredFields() ;
String[] names = new String[fields.length] ;
try {
for( int i=0; i< fields.length; i++ ) {
Field f = fields[i] ;
names[i] = f.getName();
}
} catch (Exception e) {
e.printStackTrace();
}
return names ;
}