2013-05-02 58 views
0

这是我的代码,它只删除第一个选中的文件。如何删除使用for循环的所有检查文件?

我想删除所有选中的文件,需要更改哪些内容?

如何收集CheckArr [i]中的所有值?

该代码仅删除网格中的第一个选中的文件。我想先收集所有真值的检查值,然后再进行数据库调用。

boolean CheckArr[]; 
File[] currentFiles; 

unhide.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View arg0) { 

     for (int i = 0; i < CheckArr.length; i++) { 
      if (CheckArr[i] == true) { 

       db = new DataBase(getBaseContext()); 
       try { 
        db.createDataBase(); 
       } catch (IOException e1) { 

        e1.printStackTrace(); 
       } 


       Cursor DataC = db 
        .selectQuery("SELECT path FROM Photos where name ='" + 
        currentFiles[i].getName() + "'"); 



       if (DataC.getCount() > 0) { 
        Bitmap bitmap = 
         decodeFile.decodeFile(new File(root + "/" + currentFiles[i].getName())); 

        try { 
         FileOutputStream 
         outputStream = new FileOutputStream(
          new File(DataC.getString(DataC 
          .getColumnIndex("path")))); 

         outputStream.write(decodeFile.getBitmapAsByteArray(bitmap)); 
         outputStream.close(); 
        } catch (Exception e) { 
         e.printStackTrace(); 
        } 


        File file = new File(root + "/" + 
         currentFiles[i].getName()); 
        file.delete(); 

        inflateListView(currentFiles); 

       } 

       DataC.close(); 
       db.close(); 
      } 
     }   

回答

0

您必须添加一个循环光标DATAC删除所有的文件,而不是只是第一个。

if (DataC.getCount() > 0) { 
    while (DataC.moveToNext()) { 
//... 
    } 
} 
+0

如何定义,请即时通讯混淆 – 2013-05-02 19:13:10

+0

我更新了我的代码 – 2013-05-02 19:20:56

+0

等待病检查我们的代码 – 2013-05-02 19:23:22