마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

for문을 이용해서 file리스트를 이동하려고 합니다.

0 추천

ArrayList는 file들의 정보를 담고있고 클릭하면 toggle기능이 되도록 해놓았습니다. FileIn(Out)PutStream을 이용한 이동예제를 사용중에 있고 다른 폴더의 주소(path)는 인텐트를 이용하여 얻어오도록 했습니다.

RecyclerAdapter.java

private SparseArray<String> selectedItems;
.
.

public void toggle(int pos, String name) { // name은 file.getName의 이름을 받습니다.

for(int 1 = selectedItems.size(); i >=0; i--)
seletedItems.put(i, name);


* * * * * * * * * * * * * * * * * * * * * 

MainActivity.java

ArrayList<String> mList = 어댑터에서 받은 list
// 그 외에 다른 자바클래스의 인텐트로부터 받은 파일의 주소들이 String으로 선언되어있습니다.

 

for(int i = mList.size - 1; i >=0; i--){
moveFile(getPath + "/" + mList.get(i).toString(), mPath + "/" + mList.get(i).toString());

}

이렇게 구현한 코드는 1개의 파일을 옮기는데는 문제가 없으나 2개 이상도 1개만 옮겨지고 size() -1이 없으면 IndexOutOfBoundsException에러를 내보내고...

for문의 사용방식이 잘못된 것같은데... 어떻게 고쳐야 하는지 잘 모르겠습니다. 

CEL (1,140 포인트) 님이 2015년 12월 13일 질문

1개의 답변

0 추천
 
채택된 답변
iterator 로 해보시는건 어떤가요.

Iterator iter = mList.iterator();

while(iter.hasNext()) {

    String str = iter.next();

    moveFile(getPath + "/" + str, mPath + "/" + str);

}

생각난대로 쓴거라 문법안맞을수도 있지만 이런식으로 될듯하네요
버닝 (4,880 포인트) 님이 2015년 12월 13일 답변
CEL님이 2016년 4월 5일 채택됨
...