У меня есть приложение, которое загружает файлы с другого устройства.
Эти файлы отображаются в Listview
, и я использую специальный адаптер для отображения CheckBox
и TextView
для каждого элемента списка.
Когда запускается мой DownloadActivity
, я проверяю каталог хранилища и отображаю все файлы, которые в данный момент находятся в Listview
.Это работает нормально.
Я могу удалить файлы, и они исчезнут.
Однако, когда я загружаю новый файл, я пытаюсь обновить ArrayList
и Адаптер.Однако это не работает.
Я призываю notifyDataSetChenged()
но не повезло.
Я считаю, что это должно обновить представление и добавлять файлы по мере их поступления.Я не получил ошибок.Только файл, который не отображается в списке.
Если я закрою приложение и перезапущу, файлы появятся при запуске DownloadActivity
.
Пока это мой код:
public void saveFile(String curSurvey, String curFilename) {
if (externalDir == null) {
Toast.makeText(getApplicationContext(),
"Sorry! Failed to save survey. No Directories", Toast.LENGTH_SHORT)
.show();
} else if (curSurvey.length() > 0 && curFilename.length() > 0) {
FileReadWriteWrapper frww = new FileReadWriteWrapper();
frww.openOutputWriter(curFilename, externalDir, "/surveys");
frww.writeToFile(curSurvey);
frww.closeIOStream();
if (arrayList == null) {
arrayList = new ArrayList<>();
}
arrayList.add(new FileListItem(false,curFilename + " " + curSurvey.length() + " Bytes" )); ;
if (surveyFileListAdapter == null) {
surveyFileListAdapter = new SurveyFileListAdapter(arrayList,this);
surveyListview.setAdapter(surveyFileListAdapter);
}
surveyFileListAdapter.notifyDataSetChanged();
}
}