2013-06-13 22 views
2

目前我有四種方法將不同的聲音加載到SoundPool中。我想簡化/縮短我的代碼,通過一個通用方法接受一個參數並根據它加載不同的文件。Android - 使用變量加載到SoundPool中。 (由我自己解決)

目前,我有:

public void declareDrumsAmen(){ 
    kick = currentDrums.load(myContext, R.raw.amenkick, 1); 
    hat = currentDrums.load(myContext, R.raw.amenhat, 1); 
    snare = currentDrums.load(myContext, R.raw.amensnare, 1); 
    snare2 = currentDrums.load(myContext, R.raw.amensnare2, 1); 
} 

public void declareDrumsFonk(){ 
    kick = currentDrums.load(myContext, R.raw.fonkkick, 1); 
    hat = currentDrums.load(myContext, R.raw.fonkhat, 1); 
    snare = currentDrums.load(myContext, R.raw.fonksnare, 1); 
    snare2 = currentDrums.load(myContext, R.raw.fonksnare2, 1); 
} 
... 
... 

和兩個。我想用以下幾行代替所有這些:

public void declareDrums(String kit){ 
    kick = currentDrums.load(myContext, R.raw.kitkick, 1); 
    hat = currentDrums.load(myContext, R.raw.kithat, 1); 
    snare = currentDrums.load(myContext, R.raw.kitsnare, 1); 
    snare2 = currentDrums.load(myContext, R.raw.kitsnare2, 1); 
} 

但我知道沒有辦法做到這一點。任何人可以提供一些指導?

編輯:想通了

沒有我的愚蠢。想通了,希望這可以幫助別人在谷歌搜索中絆倒這一點。

方法定義:

public void declareDrums(int resIDkick, int resIDhat, int resIDsnare, int resIDsnare2){ 
    kick = currentDrums.load(myContext, resIDkick, 1); 
    hat = currentDrums.load(myContext, resIDhat, 1); 
    snare = currentDrums.load(myContext, resIDsnare, 1); 
    snare2 = currentDrums.load(myContext, resIDsnare2, 1); 
} 

呼喚:

//declareDrums(R.raw.amenkick, R.raw.amenhat, R.raw.amensnare, R.raw.amensnare2); 
declareDrums(R.raw.fpckick, R.raw.fpchat, R.raw.fpcsnare, R.raw.fpcsnare2); 
+0

考慮發佈你想通了,作爲一個_answer_解決方案。這將有助於未來的訪問者知道問題是什麼以及解決方案是什麼。 ;-) –

+0

該網站不會讓我!它現在可能會讓我試試。 編輯:完成! –

回答

0

呃,不要介意我的愚蠢。想通了,希望這可以幫助別人在谷歌搜索中絆倒這一點。

方法定義:

public void declareDrums(int resIDkick, int resIDhat, int resIDsnare, int resIDsnare2){ 
    kick = currentDrums.load(myContext, resIDkick, 1); 
    hat = currentDrums.load(myContext, resIDhat, 1); 
    snare = currentDrums.load(myContext, resIDsnare, 1); 
    snare2 = currentDrums.load(myContext, resIDsnare2, 1); 
} 

呼喚:

//declareDrums(R.raw.amenkick, R.raw.amenhat, R.raw.amensnare, R.raw.amensnare2); 
declareDrums(R.raw.fpckick, R.raw.fpchat, R.raw.fpcsnare, R.raw.fpcsnare2);