1、文件列表包括:文件名称、文件大小和右边一个待显示的选择按钮;
2、单击列表试听每一项铃声;
文件列表的主要代码和思路:
public class ListFileActivity extends ListActivity{
}
ListFileAdapter extends BaseAdapter{
class ViewHolder{
public TextView tvFileName;
public TextView tvFileSize;
public Button btnChoose;
}
.
.
.
proteced View getView(.......){
ViewHolder viewHolder = null;
if(convertView==null){
viewHolder = new ViewHolder();
convertView = LayoutInflate.from(context).inflate(R.layout....);
viewHolder.tvFileName = (TextView)convertView.findByViewId(R.id....);
viewHolder.tvFileSize = (TextView)convertView.findByViewId(R.id....);
viewHolder.btnChoose = (Button)convertView.findByViewId(R.id....);
convertView.setTag(viewHolder); //设置可见的tag(存在内存里的),以便给下拉的不可见的赋对象,不必每次都findViewById,节约内存并提高效率
}else{
viewHolder = (ViewHolder)convertView.getTag();
}
viewHolder.tvFileName.setText(list.get(position).getFileName()); //list里放的当然是Bell啦
if(list.get(position).getFileName().toUpperCase().indexOf(".MP3") || list.get(position).getFileName().toUpperCase().indexOf(".OGG")){
实例化viewHolder.tvFileSize、viewHolder.btnChoose并设置可见
}else{
viewHolder.tvFileSize、viewHolder.btnChoose设置不可见
}
}
return convertView;
}
class Bell{
public String fileName;
public String fileSize;
settet/getter方法......
}
单击列表试听每一项铃声的主要代码和思路
试听:
MediaPlay mediaPlay = null;
private void playMusic(){
mediaPlay = new MediaPlay();
mediaPlay.setDataSource...("绝对路径/sdcard/aaa/bbb/ccc.mp3");
mediaPlay.prepare();
mediaPlay.start();
}
private void closeMusic(){
if(mediaPlay!=null && mediaPlay.isPlaying()){
mediaPlay.stop();
mediaPlay = null;
}
}
@overried
proteced void onPause(){
super.onPause();
closeMusic();
}
@overried
proteced void onBackPressed(){
super.onBackPressed();
closeMusic();
}
我的博客其它文章列表
http://my.oschina.net/helu