coding
首页>分享>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);
}
}
最近下载更多
小肥羊 LV97月24日
月亮月亮星星
913346830 LV36月30日
星星星星星星
cx0127 LV66月30日
月亮星星星星
1056571325 LV36月27日
星星星星星星
1013467354 LV26月26日
星星星星
我是一个弟弟 LV26月25日
星星星星
校园网 LV26月25日
星星星星
qwertyh LV26月24日
星星星星
和国际 LV66月23日
月亮星星星星
WCLAHHT LV86月20日
月亮月亮
最近浏览更多
mengchuan6666 LV18月14日
星星
yudejia LV28月9日
星星星星
李东曙 LV97月31日
月亮月亮星星
738978253 LV17月27日
星星
小肥羊 LV97月24日
月亮月亮星星
17744058 LV17月22日
星星
RoyKaba LV67月12日
月亮星星星星
web1903 LV107月10日
月亮月亮星星星星
musicmen7月6日
暂无贡献等级
LSSFMS LV87月1日
月亮月亮
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友