0

我正在尝试从我的 SD 卡中删除文件,但出现此错误

04-06 11:36:25.762: W/System.err(4214): java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1
04-06 11:36:25.782: W/System.err(4214):     at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
04-06 11:36:25.782: W/System.err(4214):     at java.util.ArrayList.get(ArrayList.java:304)
04-06 11:36:25.782: W/System.err(4214):     at com.myapp.functions.DownloadedAlbumLazyAdapter$1$1.onClick(DownloadedAlbumLazyAdapter.java:96)
04-06 11:36:25.782: W/System.err(4214):     at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
04-06 11:36:25.792: W/System.err(4214):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-06 11:36:25.792: W/System.err(4214):     at android.os.Looper.loop(Looper.java:137)
04-06 11:36:25.792: W/System.err(4214):     at android.app.ActivityThread.main(ActivityThread.java:4440)
04-06 11:36:25.792: W/System.err(4214):     at java.lang.reflect.Method.invokeNative(Native Method)
04-06 11:36:25.792: W/System.err(4214):     at java.lang.reflect.Method.invoke(Method.java:511)
04-06 11:36:25.792: W/System.err(4214):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
04-06 11:36:25.792: W/System.err(4214):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
04-06 11:36:25.792: W/System.err(4214):     at dalvik.system.NativeStart.main(Native Method)

这是我删除文件的代码:

dbHelper = new DatabaseHelper(activity);
                            dbHelper.openDB();
                            try {
                                ArrayList<Songs> downSongs = new ArrayList<Songs>();
                                Log.v("--", downSongs.size()+"");
                                downSongs = dbHelper
                                        .getDownloadedSongsForAlbum(data.get(
                                                position).getTAG_ID());
                                for (int i = 0; i < downSongs.size(); i++) {
                                    File file = new File(downSongs.get(i)
                                            .getSONG_MP3());
                                    Log.v("--", downSongs.get(i).getSONG_MP3());
                                    Log.v("--",file.delete()+"");
                                    dbHelper.removeDownloadedAlbum(data.get(i)
                                            .getTAG_ID());
                                    dbHelper.removeDownloadedSong(downSongs
                                            .get(i).getSONG_MP3());
                                    dbHelper.closeDB();

以及从 db 获取下载歌曲的功能:

public ArrayList<Songs> getDownloadedSongsForAlbum(String albumID){
        Cursor c = database.rawQuery("SELECT * FROM downloaded_songs " + "WHERE "
                + "album_id" + " = '" + albumID + "'", null);
        ArrayList<Songs> songs=new ArrayList<Songs>();
        if (c != null)
            if (c.moveToFirst()) {
                do {
                    String title = c.getString(c.getColumnIndex("title"));
                    String artist = c.getString(c.getColumnIndex("artist"));
                    String mp3 = c.getString(c.getColumnIndex("mp3"));
                    String mp4 = c.getString(c.getColumnIndex("mp4"));
                    String thumb = c.getString(c.getColumnIndex("thumb"));
                    songs.add(new Songs(title, artist, mp3, mp4, "http://mylink.com/cover_image/"+thumb));
                } while (c.moveToNext());
            }
        return songs;
    }
4

0 回答 0