最代码广告位
首页>分享>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);
}
}
最近下载更多
wanglinddad LV1012月11日
月亮月亮星星星星
陈伟键 LV212月8日
星星星星
听风12138 LV311月15日
星星星星星星
大西123456 LV211月11日
星星星星
女方面 LV1811月5日
太阳星星星星
subject LV611月4日
月亮星星星星
qweqweqwe321321233 LV1010月31日
月亮月亮星星星星
swkandpxm LV810月17日
月亮月亮
小肥羊 LV107月24日
月亮月亮星星星星
913346830 LV36月30日
星星星星星星
最近浏览更多
wanglinddad LV1012月11日
月亮月亮星星星星
猫与他12月10日
暂无贡献等级
wensidy LV912月10日
月亮月亮星星
陈伟键 LV212月8日
星星星星
adminima LV412月6日
月亮
OIUYTQQ2 LV212月5日
星星星星
lekers LV612月5日
月亮星星星星
Tomlin LV1012月4日
月亮月亮星星星星
sunlightvju LV512月3日
月亮星星
lala07 LV512月2日
月亮星星
最代码广告位
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友