Просто отказ от ответственности, я очень новичок в Android и Java.Воспроизведение звукового файла при нажатии элемента списка
Конечный продукт, который я собираюсь после этого, представляет собой звукозаписывающее устройство, такое как приложение. Я хочу отобразить список звуков, которые пользователь может нажать, чтобы воспроизвести соответствующий звуковой файл.
До сих пор я установил пару строковых массивов в файле strings.xml. Один массив представляет доступные звуки, а второй массив представляет фактические ресурсы R.raw.soundfile. Может быть проще просто показать это.
<string-array name="alex_list">
<item>Sound Title</item>
</string-array>
<string-array name="alex_sounds">
<item>R.raw.soundfile</item>
</string-array>
Вот определение класса, которое у меня есть до сих пор. Я действительно не хочу, чтобы кто-нибудь «делал для меня работу», но я полностью потерял то место, где двигаться дальше. Мне кажется, что я должен передать позицию строкового массива из alex_list (при нажатии), чтобы получить нужный ресурс из alex_sounds (который должен играть сразу, не нуждается в средствах управления мультимедиа). Но вот где я застрял.
public class AlexList extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(ArrayAdapter.createFromResource(getApplicationContext(), R.array.alex_list, R.layout.list_item));
getListView().setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int pos, long id) {
// I have zero clue what to do from here
}
});
}
}
Если есть лучший способ сделать это, сообщите мне. Последнее, что я хочу сделать, - это разработать вредные привычки на ранней стадии. Я продолжу работу над ним и отправлю обратно, если найду решение.
Заранее благодарим за ваше время!
Спасибо за быстрый ответ. Как бы я мог динамически вставить идентификатор ресурса, на основе которого был выбран элемент списка. Итак, для MediaPlayer.create (AlexLIst.this, <звуковой ресурс, который соответствует списку здесь>); Кроме того, есть ли лучший способ обойти это, кроме использования двух строковых массивов? –
А, да, обновил мой ответ :) – Guillaume
Хорошо, теперь мы куда-то попадаем! Я могу заставить его работать, пока элемент в списке alex_list соответствует имени файла mp3 в папке res/raw. Если бы я хотел, чтобы отображаемый текст отличался и все еще выполнял эту работу, как бы я это сделал? Например, отображаемый текст в списке может сказать «Добро пожаловать в рай», но файл находится на R.raw.paradise.mp3. Спасибо за вашу помощь, я рад, что нашел этот сайт. –