如何根据android / eclipse中的变量更改res ID(R.raw.item_name)

时间:2011-10-29 19:46:18

标签: android eclipse

极端新手在这里!

我在/ res / raw目录中有十个声音剪辑。我使用单个MediaPlayer实例(mp2)来播放剪辑。我目前正在使用if语句选择要播放的所需剪辑,但我确信有更有效的方法来执行此操作。我想根据计数器变量的值来改变正在播放的十个片段中的哪一个...这样如果counter = 1则播放“one”,如果counter = 2,则播放“two”,等等。 / p>

另外一个相关问题......如果我有4种不同语言的这10个片段,我如何根据用户对应用语言的选择来引用正确的片段? (不是系统区域设置)

switch (me.getAction()) {
    case MotionEvent.ACTION_DOWN:
        touched = true;
        counter = (counter + 1);
        // get soundfile from resources
        mp = MediaPlayer.create(getBaseContext(), R.raw.hammer_blow);
        mp.start(); // Starts your sound
        if (counter == 1) {
            mp2 = MediaPlayer.create(getBaseContext(), R.raw.one);
            mp2.start();
        }// Starts your sound

        if (counter == 2) {
            mp2 = MediaPlayer.create(getBaseContext(), R.raw.two);
            mp2.start();
        }// Starts your sound

        if (counter == 3) {
            mp2 = MediaPlayer.create(getBaseContext(), R.raw.three);
            mp2.start();
        }// Starts your sound

1 个答案:

答案 0 :(得分:1)

我会重构代码,只在计数器上加一个开关;

int sound;
switch (counter)
{
case 1:
   sound = R.raw.one;
   break;
case 2:
   sound = R.raw.two;
   break;
etc.
}

mp2 = MediaPlayer.create(getBaseContext(), sound);
mp2.start();

我不知道语言的东西。也许可以将应用程序语言设置为用户选择的值?然后原始资源将被正确计算出来。