首先我们实现从WecomelActivity到MainActivity。实现方法就是在WelcomeActivity的最后一个界面监听,音乐库building事件
@Override
public void onFinishBuildingLibrary(AsyncBuildLibraryTask task) {
task.mBuildLibraryProgressUpdate.remove(0);
Intent intent = new Intent(mContext, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
}
这样我们跳转到ListViewFragment里面了。这里其实就是将MusicLibrary的Cursor给LsitVeiw就行了。
这是通过一个异步任务完成的。
class AsyncRunQuery extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... params) {
// TODO: 2016/6/1
mCursor = mApp.getDBAccessHelper().getAllSongsInLibrarySearchable(" ");
// mCursor = MediaStoreAccessHelper.getAllUniquePlaylists(mContext);
Log.i(TAG, "the number of elements in cursor is " + mCursor.getCount());
loadDBColumnNames();
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
mListViewAdapter = new ListViewCardsAdapter(mContext, mFragment ,mDBColumnsMap);
mListView.setAdapter(mListViewAdapter);
mListView.setOnItemClickListener(onItemClickListener);
mQuickScroll.init(QuickScroll.TYPE_INDICATOR_WITH_HANDLE,
mListView,
(ListViewCardsAdapter) mListViewAdapter,
QuickScroll.STYLE_HOLO);
PauseOnScrollHelper pauseOnScrollHelper = new PauseOnScrollHelper(null,null, true ,true);
mQuickScroll.setOnScrollListener(pauseOnScrollHelper);
}
/**
* Populates the DB column names based on the specifed fragment id.
*/
private void loadDBColumnNames() {
mDBColumnsMap.put(ListViewCardsAdapter.TITLE_TEXT, DBAccessHelper.SONG_TITLE);
mDBColumnsMap.put(ListViewCardsAdapter.SOURCE, DBAccessHelper.SONG_SOURCE);
mDBColumnsMap.put(ListViewCardsAdapter.FILE_PATH, DBAccessHelper.SONG_FILE_PATH);
mDBColumnsMap.put(ListViewCardsAdapter.ARTWORK_PATH, DBAccessHelper.SONG_ALBUM_ART_PATH);
mDBColumnsMap.put(ListViewCardsAdapter.FIELD_1, DBAccessHelper.SONG_DURATION);
mDBColumnsMap.put(ListViewCardsAdapter.FIELD_2, DBAccessHelper.SONG_ARTIST);
// mDBColumnsMap.put(ListViewCardsAdapter.TITLE_TEXT, MediaStore.Audio.Playlists.NAME);
// mDBColumnsMap.put(ListViewCardsAdapter.FIELD_1, MediaStore.Audio.Playlists._COUNT);
}
}
}