2010-10-18 16 views
2

我的問題有兩個部分,但兩者都有關係。我已經搜索遍佈整個地方,但無法找到放入數組的所有文件名,例如字符串格式的MP3。Android Java - 將R.raw的所有文件名放入數組中,無需手動指定每個文件名

我還希望在Java中快速創建新按鈕,而不是使用XML文件佈置按鈕。

僞碼:

陣列[] =把從R.raw所有文件名到該陣列與文件名;

count = count array []中的行數;

//我希望能夠與該陣列 做到這一點對(INT I = 0;我<計數;我++){ 創建新的按鈕併爲其分配一個聲音(的onclick); this.button應該放置在任何我想要的地方,而不使用XML佈局 }

在此先感謝任何人都可以提供的幫助!

回答

2

簡短回答:你不行。

龍答:R.raw和喜歡在構建時產生的,因而靜態在你的代碼(你不能動態地從你的應用程序條目添加到這些對象)。基本上,R只是看起來像一個類:

package com.yourapp; 
public class R { 
    public class raw { 
     public static final int file_1 = 123456; // where 123456 is the address where that file will be found 
     public static final int file_2 = 789012; 
     // ... 
    } 
} 

因此,有沒有辦法(據我所知)獲得這些屬性的數組中。


我建議你使用assets/目錄而不是R.raw。這樣,您將可以使用AssetManager.list()獲取文件列表(以及其他用於實際處理文件的AssetManager函數)。

+0

謝謝你,先生。原諒我是一個業餘愛好者。剛開始學習Java。 – s5Android 2010-10-18 15:20:50

+0

我也在這裏找到了一個很好的例子。 http://thedevelopersinfo.com/2009/11/17/using-assets-in-android/ – s5Android 2010-10-18 15:21:09

+0

@ s5Android:如果您認爲這是您問題的正確答案,請點擊左側的複選標記。 – Felix 2010-10-18 15:22:43

1

您可以使用反射:

Field [] f=R.raw.class.getFields(); 
for (Field field : f) { 
    field.getName(); 

} 
相關問題