2010-12-05 2 views
1

내 app에 listActivity가있어서 사용자가 listFiles()에 의해 생성 된 목록에서 파일을 선택할 수 있습니다.파일이 바뀔 때 Android listfiles가 새로 고쳐지지 않습니다.

File f=null; 
File[] files = null; 
f= new File(BOOKPATH); 
    files = f.listFiles(); 
    item = new ArrayList<String>(); 

    for(int i=files.length-1; i >= 0; i--){ 
     File file = files[i]; 
     item.add(file.getName()); 
    } 

사용자가 항목을 클릭하면 활동이 시작되고 사용자가 파일을 편집 할 수 있습니다. 사용자가 편집 활동을 종료하면 편집 된 내용이 새 이름의 새 파일에 저장되고 처음 선택한 파일이 삭제됩니다.

그러면 첫 번째 활동의 onResume()에서 새 파일 목록을 가져 오는 동일한 코드가 다시 호출됩니다.

코드가 제대로 실행되었지만 버퍼가 새로 고쳐지지 않은 것처럼 listFiles() 함수는 고대 목록을 반환합니다.

이상한 점은 안드로이드 장치에서 방향을 바꿀 때 올바른 파일 목록이 반환되고 onResume()이 다시 호출된다는 것입니다.

나는 또한 동일한 동작을 얻기 위해 여러 가지 방법으로 활동을 재 시도했지만 성공하지는 못했다.

도움을 주셔서 미리 감사드립니다.

답변

0

notifyDataSetChanged()을 시도해 목록을 다시로드하십시오.

+1

"files = f.listFiles()"가 호출되어 반환 된 배열이 잘못되었을 때 문제가 발생합니다. notifyDataSetChanged()는 뷰에 어댑터를 반영하는 데 사용됩니다. 오해하면 고맙습니다. 감사합니다. – Mokauno