В настоящее время я работаю над простым mp3-плеером в качестве приложения на моем телефоне Android.Я просматриваю все файлы на моей SD-карте и во внутренней памяти, чтобы найти все с расширением: «.mp3».
Просто и отлично работает.
Затем я заполняю список со всеми полученными названиями песен, и при нажатии они начинают играть.Работает нормально, НО
Я сейчас попробовал это на моем личном телефоне с 700+ песнями на нем, и списки были сделаны менее чем за секунду, но теперь списки должны заполнить ScrollView в цикле foreach с помощьюРезультаты.И это занимает вечность:
private void PopulateScrollView(List<string> content)
{
LinearLayout root = (LinearLayout)FindViewById(Resource.Id.scrollview);
mp3 = new List<MP3object>();
foreach (string obj in content)
{
WriteMetaDataToFileList(obj);
TextView txt = new TextView(this);
reader.SetDataSource(obj);
txt.Text = reader.ExtractMetadata(MediaMetadataRetriever.MetadataKeyTitle);
txt.TextSize = 20;
txt.Gravity = Android.Views.GravityFlags.Center;
root.AddView(txt);
txt.Click += delegate
{
PlayMusic(Android.Net.Uri.Parse(obj));
firstStart = false;
txt_CurrentSong.Text = CurrentActiveSongUri.ToString();
btn_StartOrPause.Text = Resources.GetString(Resource.String.Pause);
};
}
}
Итак, мне интересно.Что я делаю иначе, чем мой "нормальный" музыкальный проигрыватель на моем телефоне?Я открываю его, и все песни уже заполнены в ScrollView, почти НЕТ времени ожидания.По-видимому, проходить цикл 700+ раз, чтобы заполнить его песнями, - слишком много работы, но это нужно сделать, верно?Или я вижу здесь что-то не так?Некоторая помощь будет УДИВИТЕЛЬНОЙ!:)
Спасибо.
*** РЕДАКТИРОВАТЬ:
Кроме того, я отметил, что каждое приложение, которое перечисляет мои файлы на моем телефоне, чертовски быстро, даже 1000+файлы в виде прокрутки.Понятно, что мой путь - это неправильный способ заполнить скролл-просмотр статическими элементами с моего телефона.Есть ли другие способы сделать это?спасибо :)