Я пытаюсь создать код, который динамически создает разные кнопки медиаплеера в зависимости от количества wav-файлов, созданных в отдельной активности Android Studio.
Каждый файл WAV сохраняется со следующим путем к файлу
/data/data/com.example.androidaudiorecorder/files/event1.wav
/data/data/com.example.androidaudiorecorder/files/event2.wav
/data/data/com.example.androidaudiorecorder/files/event3.wav
Это код, который создает кнопки и помещает их в массив:
Button[] buttonsPlay = new Button[data];
for (int loop = 0; loop < data ; loop++) {
playID ++;
Button button = new Button(this);
button.setId(playID);
button.setText("Play event "+playID);
String buttonName = "PlayEvent" + playID;
button.setLayoutParams(new LinearLayout.LayoutParams(500, 50));
LinearLayout.LayoutParams ll = (LinearLayout.LayoutParams)button.getLayoutParams();
ll.gravity = Gravity.CENTER;
button.setLayoutParams(ll);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
button.setLayoutParams(params);
buttonsPlay[loop] = button;
}
После создания каждой кнопки я хочу просмотреть все кнопки в массиве и воспроизвести соответствующий файл WAV.
Пока это моя попытка
playID = 0;
for (int loop = 0 ; loop < buttonsPlay.length ; loop ++){
playID++;
Toast.makeText( ctx, "play is " + playID , Toast.LENGTH_SHORT).show();
buttonsPlay[loop] = (Button) findViewById( buttonsPlay[loop].getId());
buttonsPlay[loop].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String dataSource = "/data/data/com.example.androidaudiorecorder/files/event"+ playID +".wav";
playEvent( dataSource);
}
});
К сожалению, каждый раз, когда я играю в wav, он воспроизводит только последнее созданное событие wav.
Например, если там, где 10 wav-файлов, воспроизводится каждая нажатая кнопка:
"/ данные / данные / com.example.androidaudiorecorder / файлы / event10.wav"
Если у кого-нибудь есть какие-либо советы о том, как это исправить, я был бы очень признателен.