gpt4 book ai didi

android - 如何从android中另一个 Activity 的数据库中获取数据

转载 作者:搜寻专家 更新时间:2023-10-30 23:21:43 27 4
gpt4 key购买 nike

在我的应用程序的第一个 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com