我在以下代码行中收到“ExceptionInitializerError”:
(活动一)
Activity2.selection = AudioColumns.ARTIST + "=?";
(活动二)
static String selection;
有人可以告诉我我做错了什么吗?
有关完整代码,请参见下文。
(活动一)
package awesome.music.player;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.BaseColumns;
import android.provider.MediaStore;
import android.provider.MediaStore.Audio.AlbumColumns;
import android.provider.MediaStore.Audio.ArtistColumns;
import android.provider.MediaStore.Audio.AudioColumns;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
public class ArtistsActivity extends Activity implements OnItemClickListener {
private Cursor artistCursor;
@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.artistsview);
String[] artistColumns = { BaseColumns._ID, ArtistColumns.ARTIST };
// The columns to return for each row.
artistCursor = managedQuery(
MediaStore.Audio.Artists.EXTERNAL_CONTENT_URI, artistColumns,
null, null, null);
ListView listView = (ListView) findViewById(R.id.listViewArtists);
listView.setOnItemClickListener(this);
// set an on item click listener to the first list view in this activity
String[] displayFields = new String[] { ArtistColumns.ARTIST };
// set all the artist names to the array "displayfields"
int[] displayViews = new int[] { R.id.artistTitle };
// number of rows to display and where to bind them
SimpleCursorAdapter artistAdapter = new SimpleCursorAdapter(this,
R.layout.artistitem, artistCursor, displayFields, displayViews);
listView.setAdapter(artistAdapter);
}
// Take the display fields array, and bind to the matching display row
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
if (artistCursor.moveToPosition(position)) {
Playlist.selection = AudioColumns.ARTIST + "=?";
Playlist.selectionArgs = new String[] { artistCursor
.getString(artistCursor.getColumnIndex(AlbumColumns.ARTIST)) };
Playlist.artist = artistCursor.getString(artistCursor
.getColumnIndex(ArtistColumns.ARTIST));
Intent intent = new Intent(ArtistsActivity.this,
ArtistAlbumsActivity.class);
startActivity(intent);
}
}
}
(活动二)
package awesome.music.player;
import java.util.ArrayList;
import android.content.ContentUris;
import android.net.Uri;
public class Playlist {
static ArrayList<String> pathList = new ArrayList<String>();
static ArrayList<String> artistList = new ArrayList<String>();
static ArrayList<String> albumList = new ArrayList<String>();
static ArrayList<String> titleList = new ArrayList<String>();
static ArrayList<String> idList = new ArrayList<String>();
static ArrayList<String> durationList = new ArrayList<String>();
static int currentSongIndex;
static String currentSongPath;
static String artist;
static String album;
static String albumId;
static String numSongs;
static String selection;
static String[] selectionArgs;
static String totalSongduration; // Set
static String songDuration = durationList.get(currentSongIndex);
static String currentAlbumId = Playlist.idList
.get(Playlist.currentSongIndex);
static Integer currentAlbumIdLong = Integer.parseInt(currentAlbumId);
static Uri artworkUri = Uri
.parse("content://media/external/audio/albumart");
static Uri currentSongUri = ContentUris.withAppendedId(artworkUri,
currentAlbumIdLong);;
static int totalSongDuration = Integer.parseInt(songDuration);
}
谢谢你的帮助。