Android音楽プレーヤー--プレイリストの実現
午前中を経て、プレイリストは初歩的に完成したが、まだ多くの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")); //
}
});
}