2013-05-02 2 views
-1

내 코드는 버튼 클릭만으로 첫 번째 파일을 삭제하지만이 문이 참이면 for 루프를 사용하여 모든 이미지를 삭제하고 숨김을 취소하려는 경우 if (CheckArr [i] == true) 하지만 내 코드는 단지 첫 번째 인덱스 파일을 수행합니다. 모든 체크 된 파일은 삭제됩니다. 첫 번째 파일은 삭제됩니다. 어떻게해야합니까? 내가 선택한 모든 항목을 삭제하고 복사하려면 어떻게해야합니까? 어떻게 내 for 루프를 사용자 정의합니까 ??for 루프의 모든 반복에 대한 메서드를 수행하는 방법

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() + "'"); 



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

내 코드를 삭제 체크 된 항목의 첫 번째 값이 모든 값이 아님 –

+0

질문을 향상 시키십시오. 여기에서 묻고 자하는 것이 명확하지 않습니다. – deepdroid

+0

내 코드를 그냥 복사하고 현재 [i] 값을 삭제하려면 모든 값을 체크하지 않는 모든 파일을 삭제하고 싶습니다 –

답변

0

내 루프를 다르게 할 것입니다. 한 번만 데이터베이스를 열면 중간 단계가 작동하는지 확인합니다.

이 내가 권하고 싶습니다 무엇을 더 :. 난 당신이 몇 가지에 무엇을하는지 확실하지 않다

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

      try { 
       db.createDataBase(); 
       for (int i = 0; i < CheckArr.length; i++) { 
        if (CheckArr[i] == true) { 
         db = new DataBase(getBaseContext()); 
         Cursor dataC = db.selectQuery("SELECT path FROM Photos where name ='"+ 
           currentFiles[i].getName() + "'"); 
         Bitmap bitmap = decodeFile.decodeFile(new File(root + "/"+ currentFiles[i].getName())); 
         if (dataC.moveToFirst() && bitmap != null) { 
          FileOutputStream outputStream = new FileOutputStream(new 
            File(dataC.getString(dataC.getColumnIndex("path")))); 

          outputStream.write(decodeFile.getBitmapAsByteArray(bitmap)); 
          outputStream.close(); 

          File file = new File(root + "/" + currentFiles[i].getName()); 
          file.delete(); 
         } else { 
          if (bitmap == null) { 
           Log.v("YOUR TAG", "bitmap not found"); 
          } else {} 
          Log.v("YOUR TAG", "unable to convert file"); 
         } 
         dataC.close(); 
        } 
       } 
       db.close(); 

       inflateListView(currentFiles); 
      } catch (Exception e1) { 
       e1.printStackTrace(); 
      } 
     } 
    } 

을하지만 내가 갈 것 방향 그냥