2014-12-18 2 views
0

У меня есть приложение, которое воспроизводит случайный звук из моей сырой папки при нажатии кнопки. Он работает отлично, но моя попытка установить текст на кнопке, поскольку следующее имя файла терпит неудачу. Я далеко? Кроме того, как я могу играть в файлы в порядке, а не в случайном порядке? Спасибо, пожалуйста, будьте осторожны.Настройка текста имени звукового файла

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Button sound = (Button) findViewById(R.id.button1); 
    sound.setOnClickListener(new View.OnClickListener() { 

     final int[] btns = new int[]{R.raw.sound1, R.raw.sound2, R.raw.sound3, R.raw.sound4, R.raw.sound5, R.raw.sound6, R.raw.sound7, R.raw.sound8, R.raw.sound9, R.raw.sound10, R.raw.sound11, R.raw.sound12, R.raw.sound13, R.raw.sound14, R.raw.sound15, R.raw.sound16, R.raw.sound17, R.raw.sound18, R.raw.sound19, R.raw.sound20, R.raw.sound21, R.raw.sound22, R.raw.sound23, R.raw.sound24, R.raw.sound25, R.raw.sound26, R.raw.sound27, R.raw.sound28, R.raw.sound29, R.raw.sound30, R.raw.sound31, R.raw.sound32, R.raw.sound33, R.raw.sound34, R.raw.sound35, R.raw.sound36, R.raw.sound37, R.raw.sound38, R.raw.sound39, R.raw.sound40, R.raw.sound41, R.raw.sound42, R.raw.sound43, R.raw.sound44, R.raw.sound45, R.raw.sound46, R.raw.sound47, R.raw.sound48, R.raw.sound49, R.raw.sound50 }; 

     private Random rnd = new Random(); 

     @Override 
     public void onClick(View v) { 
      ((Button) v).setText(rnd); 
      int sndToPlay = rnd.nextInt(btns.length); 
      final MediaPlayer mp = MediaPlayer.createMainActivity.this, btns[sndToPlay]); 
      mp.start(); 
     } 
    ); 
} 

ответ

0

Некоторые из ваших кодов были немного разряжены, но вот обновленная функция. Вы пытались передать случайный объект вместо передачи имени звукового файла.

@Override 
public void onClick(View v) { 
    int sndToPlay = rnd.nextInt(btns.length); 
    ((Button) v).setText(sndToPlay); 
    final MediaPlayer mp = MediaPlayer.createMainActivity(btns[sndToPlay]); 
    mp.start(); 
} 
+0

Ах, спасибо, спасибо. Однако это не работает для меня. Я могу установить текст кнопки в строку, используя эту перегруппировку кода, но он сбой с передачей sndToPlay в. Hmmm ... –

+0

Должен ли он использовать метод valueOf()? –

Смежные вопросы