Android音楽プレーヤー--プレイリストの実現

3519 ワード

午前中を経て、プレイリストは初歩的に完成したが、まだ多くのBugがゆっくり解決しなければならないに違いない.以下はコードで、不足と間違いを指摘してほしい.(私はmediaStoreマルチメディアデータベースを使っていません.最大の不足ですが、自分で作ったデータベースで曲の住所を保存するだけです)

public class DBService {
	public static void save(String name,Context context){          //         
		MusicDBOpenHelper helper=new MusicDBOpenHelper(context);
		SQLiteDatabase db=	helper.getReadableDatabase();
		db.execSQL("insert into music(music_name)values(?)",new Object[]{name});
		db.close();
	} 
	public static List<Music> findAll(Context context){            //            
		List<Music> musics =new ArrayList<Music>();
		MusicDBOpenHelper helper=new MusicDBOpenHelper(context);
		SQLiteDatabase db=	helper.getReadableDatabase();
		Cursor  cursor=db.rawQuery("select * from music", null);
		while(cursor.moveToNext()){
			Music music=new Music();
			music.setId(cursor.getInt(0));
			music.setMusicName(cursor.getString(1));
			musics.add(music);
		}
		return musics;
	} 
}
このクラスは、曲のアドレスを追加および検索するためにデータベースを操作します.(完璧ではありません...)

public class MusicDBOpenHelper extends SQLiteOpenHelper {
	private static final String name="musics";
	private static final int version=1;
	public MusicDBOpenHelper(Context context) {
		super(context, name, null, version);
		// TODO Auto-generated constructor stub
	}

	@Override
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub
		db.execSQL("create table IF NOT EXISTS  music (id integer primary key autoincrement,music_name char(20))");
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		// TODO Auto-generated method stub
		db.execSQL("drop table IF EXISTS  student");
		onCreate(db);
	}

}

は、データベースおよびバージョン管理を構築するために使用されます.

 public void addList()                      //                。
	  {
		  List<Music> musics =new ArrayList<Music>();
		  musics=DBService.findAll(MusicPalyerActivity.this);
		  List<HashMap<String,String>> data=new ArrayList<HashMap<String,String>>();
		  
		  for(Music music:musics){
			  HashMap<String,String> map=new HashMap<String,String>();
			  map.put("id",String.valueOf(music.getId()));
	          map.put("music_name", music.getMusicName());
	          data.add(map);
		  }
		  
		  SimpleAdapter adapter=new SimpleAdapter(MusicPalyerActivity.this, data, R.layout.music_items, new String[]{"id","music_name"}, new int[]{R.id.musicId,R.id.musicName});
		  
		 
		  listView.setAdapter(adapter);
		  
		  
		  listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

				@Override
				public void onItemClick(AdapterView<?> parent, View view,
						int position, long id) {
					ListView listView=(ListView)parent;
					HashMap<String,String>  map=(HashMap<String,String>)listView.getItemAtPosition(position);
					
					
					playMusic(map.get("music_name"));           //         
					
				}
	        	
			});
		  
	  }