Android 无法从sd卡中删除文件

Android 无法从sd卡中删除文件,android,android-file,Android,Android File,我正试图从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 1

我正试图从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();
dbHelper=newdatabasehelper(活动);
dbHelper.openDB();
试一试{
ArrayList downSongs=新的ArrayList();
Log.v(“--”,downSongs.size()+”);
downSongs=dbHelper
.GetDownloadedSongsForlbum(data.get(
位置);
对于(int i=0;i
以及从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;
    }
public ArrayList getDownloadedSongsForAlbum(字符串albumID){
游标c=database.rawQuery(“从下载的歌曲中选择*”+“其中”
+“唱片集id”+“=”+“唱片集id+”,空);
ArrayList歌曲=新建ArrayList();
如果(c!=null)
if(c.moveToFirst()){
做{
String title=c.getString(c.getColumnIndex(“title”);
字符串艺术家=c.getString(c.getColumnIndex(“艺术家”);
字符串mp3=c.getString(c.getColumnIndex(“mp3”);
字符串mp4=c.getString(c.getColumnIndex(“mp4”);
字符串thumb=c.getString(c.getColumnIndex(“thumb”);
歌曲。添加(新歌(标题、艺术家、mp3、mp4、)http://mylink.com/cover_image/“+拇指”);
}而(c.moveToNext());
}
返回歌曲;
}

问题出在
下载的AlbumLazyAdapter
at
get()
这是我猜您的for中的downSongs.size()-1loop@PareshMayani这是arraylist中的get()吗?