как получить данные из базы данных другой деятельности в Android - PullRequest
1 голос
/ 03 мая 2011

в моем приложении в первом упражнении я создал базу данных, в которой хранятся песни, которые находятся на SD-карте моего устройства.Я хочу сыграть все эти песни одну за другой.В другой игре у меня есть кнопка воспроизведения, когда кнопка нажата, я хочу воспроизвести песни, хранящиеся в базе данных моей первой активности.

Теперь я создал базу данных и сохранил песни, но я не знаючтобы получить песни из этой базы данных.Ниже приведен код базы данных, где я храню список песен

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();         
        }
    };

как это сделать .... пожалуйста, помогите мне

1 Ответ

2 голосов
/ 03 мая 2011

Вообще говоря, вам нужно создать ContentProvider вокруг вашей базы данных, чтобы вы могли легко получить к нему доступ из различных действий. Заполните одну и играйте с другой и т. Д.

...