首页>代码>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日

最近浏览