作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在我的应用程序的第一个 Activity 中,我创建了一个数据库来存储我设备 SD 卡中的歌曲。我想一首一首地播放所有这些歌曲。在另一个 Activity 中,我有一个播放按钮,当单击该按钮时,我想播放存储在我的第一个 Activity 数据库中的歌曲。
现在我已经创建了数据库并存储了歌曲,但我不知道如何从该数据库中获取歌曲。以下是我存储歌曲列表的数据库代码
private Handler songsDatabase = new Handler()
{
public void handleMessage(Message msg)
{
File extStore = Environment.getExternalStorageDirectory();
Log.e("location",""+extStore);
System.gc();
final String[] proj = { MediaStore.Audio.Media._ID,MediaStore.Audio.Media.DATA,MediaStore.Audio.Media.DISPLAY_NAME,MediaStore.Audio.Media.SIZE };
Log.e("media",""+proj.length);
musiccursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,proj, null, null, null);
Log.e("media1",""+musiccursor);
SQLiteDatabase db;
db = openOrCreateDatabase("TestData.db", SQLiteDatabase.CREATE_IF_NECESSARY, null);
db.setVersion(1);
db.setLocale(Locale.getDefault());
db.setLockingEnabled(true);
final String CREATE_TABLE_COUNTRIES ="CREATE TABLE IF NOT EXISTS songs (bpm INTEGER,songname TEXT);";
db.execSQL(CREATE_TABLE_COUNTRIES);
Log.e("media","table created");
ContentValues values = new ContentValues();
cursor=managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,proj, null, null, null);
while(cursor.moveToNext())
{
// Long duration = cursor.getLong(cursor.getColumnIndex(AudioColumns.DURATION));
// String data = cursor.getString(cursor.getColumnIndex(MediaColumns.DATA));
String title = cursor.getString(cursor.getColumnIndex(MediaColumns.DISPLAY_NAME));
values.put("bpm", 0);
values.put("songname", title);
db.insert("songs", null, values);
// handle song here
}
Log.e("media","insered");
Cursor cx = db.rawQuery("select * from songs" , null);
if (cx != null )
{
if (cx.moveToFirst())
{
do
{
int bpm=cx.getInt(0);
String songname =cx.getString(1);
Log.e("songs","bpm "+bpm+" songname "+songname);
}while (cx.moveToNext());
}
}
// Log.e("sql","counter" +counter);
db.close();
}
};
怎么做....请帮助我
最佳答案
一般来说,您需要围绕您的数据库创建 ContentProvider,以便您可以轻松地从不同的 Activity 中访问它。从一个填充,从另一个播放等等。
关于android - 如何从android中另一个 Activity 的数据库中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5869669/
我是一名优秀的程序员,十分优秀!