2011-05-03 5 views
0

첫 활동에서 내 장치에 내 장치 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

데이터를 저장하는 데 사용하는 코드를 붙여 넣으십시오. 데이터를 다시 검색하는 방법을 쉽게 알려줍니다. – Cristian

+1

이 줄 뒤에 커서 cx = db.rawQuery ("select * from songs", null); 커서 수를 cx.getCount()로 확인하십시오. – Venky

답변

1

도와주세요 데이터베이스의 코드, 당신은 당신 때문에, 데이터베이스 주위 컨텐트 프로 바이더를 작성해야 다른 활동에서 쉽게 액세스 할 수 있습니다. 하나에서 채우고 다른 플레이어에서 재생하십시오.

관련 문제