2012-04-14 74 views
0

我一直在研究MediaPlayer應用程序,我使用MediaStore.Audio.Media獲取SD卡上的所有歌曲及其標題,專輯,藝術家等標籤。我有一個自定義適配器,我想檢查藝術家字段是否爲空,因此我可以爲該字段設置「藝術家未知」。適配器和我使用的遊標在我看來與這個問題無關,所以我不打算在這裏粘貼任何代碼,因爲這個問題也發生在適配器之外。如何檢查MediaStore.Audio.Media.ARTIST字段爲空?

這是問題:當mp3歌曲沒有藝術家標籤時,藝術家字段(MediaStore.Audio.Media.ARTIST字段)的光標返回「」。我不知道是什麼樣的數據類型(它應該是字符串),因爲每當我將它與具有值「」的字符串進行比較時,比較是錯誤的。即使我將該字段的返回值分配給一個臨時String,並且與前面提到的「」比較,我仍然會得到錯誤。我甚至嘗試過null,「未知」,「」,沒有任何作用。 我真的在這裏遇到了死衚衕,任何形式的幫助都將不勝感激。

謝謝你,伊萬。

回答

1

我使用的是非常相同的字段(MediaStore.Audio.Media.ARTIST),但我注意到的是不同的。 當您嘗試檢索歌曲的藝術家信息並且當前沒有可用信息時,您得到的是<unknown>字符串。

我想改變這種方式也是一樣,我只是去了:

String artist = (((cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)) == null) 
          || cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)).equals("") 
          || cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)).equals("<unknown>")) ? 
       "Artist Unknown" : cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST))); 

的「空,平等相待。(」「)」檢查應該是無用的反正。