首页>代码>Android高仿手机客户端酷狗音乐播放器>/musicPlayer_liuchunwang/src/com/example/musicplayer/MusicListActivity.java
package com.example.musicplayer; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; import android.provider.MediaStore; import android.view.KeyEvent; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; import com.example.musicPlayer_liuchunwang.R; import com.example.service.MusicService; import com.example.tool.MusicListAdapter; import com.example.tool.ScanSDReicver; public class MusicListActivity extends Activity { /***音乐列表**/ private ListView listviews; /** 设置三个临时变量,分别存放标题,艺术家 **/ private int _ids[]; private String _titles[]; private String _artists[]; private String _path[]; private String _alltime[]; private AlertDialog ad = null; private AlertDialog.Builder builder = null; MusicListAdapter adapter;// 音乐列表适配器 ScanSDReicver receiver;// 扫描SD卡的。 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.music_list); init(); } private void init(){ listviews = (ListView) findViewById(R.id.music_list); /** 选择子项点击事件 ***/ listviews.setOnItemClickListener(new MusicListOnClickListener()); ShowMp3List(); } /** 显示mp3列表*/ private void ShowMp3List() { // 用游标查找媒体信息 Cursor cursor = this.getContentResolver().query( MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, new String[] { MediaStore.Audio.Media.TITLE, MediaStore.Audio.Media.DURATION, MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media._ID, MediaStore.Audio.Media.DISPLAY_NAME, MediaStore.Audio.Media.DATA, MediaStore.Audio.Media.ALBUM_ID }, null, null, null); /** 判断游标是否为空,有些地方即使没有音乐也会报异常。因为游标不稳定。稍有不慎就出错了,其次,如果用户没有音乐告知用户没有音乐 */ if (null != cursor && cursor.getCount() == 0) { builder = new AlertDialog.Builder(this); builder.setMessage(R.string.music_list_tell).setPositiveButton( "确定", null); ad = builder.create(); ad.show(); return; } /**将游标移到第一位**/ cursor.moveToFirst(); /** 分别实例化**/ _ids = new int[cursor.getCount()];// _titles = new String[cursor.getCount()]; _artists = new String[cursor.getCount()]; _path = new String[cursor.getCount()]; _alltime=new String[cursor.getCount()]; /***用循环把信息查找出来*/ for (int i = 0; i < cursor.getCount(); i++) { _ids[i] = cursor.getInt(3); _titles[i] = cursor.getString(0); _artists[i] = cursor.getString(2); _path[i] = cursor.getString(5).substring(4); _alltime[i]=(toTime(cursor.getInt(1))); /***一直将游标往下走**/ cursor.moveToNext(); } listviews.setAdapter(new MusicListAdapter(this, cursor)); } /** * 时间的转换 */ public String toTime(int time) { time /= 1000; int minute = time / 60; int second = time % 60; minute %= 60; return String.format("%02d:%02d", minute, second); } /** 音乐列表添加监听器,点击之后播放音乐*/ private class MusicListOnClickListener implements OnItemClickListener { @Override public void onItemClick(AdapterView<?> arg0, View view, int position, long id) { playMusic(position); } } /** 根据列表点击的位置开始播放*/ public void playMusic(int position) { Intent intent = new Intent(MusicListActivity.this, PlayMusicActivity.class); intent.putExtra("_ids", _ids); intent.putExtra("_titles", _titles); intent.putExtra("_artists", _artists); intent.putExtra("position", position); startActivity(intent); finish(); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK &&event.getRepeatCount() == 0) { new AlertDialog.Builder(MusicListActivity.this) .setMessage("确定退出吗?") .setTitle("提示").setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Intent mediaServer = new Intent(MusicListActivity.this, MusicService.class); stopService(mediaServer); finish(); } }) .setNegativeButton("取消", null) .show(); return false; } return super.onKeyDown(keyCode, event); } }

WeiZeHui LV1
2024年5月14日
Mhdpig LV3
2023年11月18日
微信网友_6503436888428544 LV1
2023年6月3日
微信网友_6372050284417024 LV1
2023年3月2日
快乐的程序员 LV25
2023年1月22日
花无拆 LV2
2022年6月7日
zhuimengren LV4
2022年5月30日
zx52110 LV1
2022年5月27日
1623096142 LV6
2022年5月27日
5555sd6asd3a2d3 LV6
2022年5月20日