Android mp3播放器实例-----Music实体类,ListActivity类,MusicAdapter类

来源:互联网 发布:哪里可以网络购彩 编辑:程序博客网 时间:2024/06/05 04:36
 

这里,我们对于Music实体类只进行粘贴不进行解释,因为这中基础类应该大家都会的。这里只定义了一些music的属性,并且设置了set和get方法而已。

package music.mic.mic;

public class Music {
//标题
private String title;
//歌手
private String singer;
//专辑
private String album;
//url地址
private String url;
//大小
private long size;
//时间
private long time;
//歌名
private String name;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getSinger() {
return singer;
}
public void setSinger(String singer) {
this.singer = singer;
}
public String getAlbum() {
return album;
}
public void setAlbum(String album) {
this.album = album;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public long getSize() {
return size;
}
public void setSize(long size) {
this.size = size;
}
public long getTime() {
return time;
}
public void setTime(long time) {
this.time = time;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

}

接下来我们看ListActivity类

package music.mic.act;

import java.util.List;

import music.mic.adapter.MusicAdapter;
import music.mic.mic.Music;
import music.mic.util.MusicList;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;

public class ListActivity extends Activity {
private ListView listView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

//加载布局文件并且找到对应的listview控件
setContentView(R.layout.listmusic);

listView = (ListView) this.findViewById(R.id.listAllMusic);

//得到歌曲列表
List<Music> listMusic = MusicList.getMusicData(getApplicationContext());

// 新建MusicAdapter并加载
MusicAdapter adapter = new MusicAdapter(this, listMusic);
listView.setAdapter(adapter);

//设置点击监听
listView.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {

//new 一Intent并且将当前的position放到intent中存储并传递到MusicActivity中进行处理,调用startActivity(intent)启动。一般在需要存储传递数据时才采用startActivity()方法。
Intent intent = new Intent(ListActivity.this, MusicActivity.class);
intent.putExtra("id", arg2);
startActivity(intent);
}

});
}
}

MusicAdapter

package music.mic.adapter;

import java.util.List;

import music.mic.act.R;
import music.mic.mic.Music;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

public class MusicAdapter extends BaseAdapter {
private List<Music> listMusic;
private Context context;

public MusicAdapter(Context context, List<Music> listMusic) {
super();
this.listMusic = listMusic;
this.context = context;
}

public void setListItem(List<Music> listMusic) {
this.listMusic = listMusic;
}

@Override
public int getCount() {
return listMusic.size();
}

@Override
public Object getItem(int position) {
return listMusic.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.music_item, null);
}
Music m = listMusic.get(position);
// 歌名
TextView musicName = (TextView) convertView.findViewById(R.id.music_item_name);
musicName.setText(m.getName());
// 歌手
TextView textMusicSinger = (TextView) convertView.findViewById(R.id.music_item_singer);
textMusicSinger.setText(m.getSinger());
// 持续时间
TextView textMusicTime = (TextView) convertView.findViewById(R.id.music_item_time);
textMusicTime.setText(toTime((int) m.getTime()));
return convertView;
}

//将时间截取并且设置能统一格式返回

private String toTime(int time) {

time /= 1000;
int minute = time / 60;
int hour = minute / 60;
int second = time % 60;
minute %= 60;
return String.format("%02d:%02d", minute, second);
}

}

原创粉丝点击