попробовал без Handle, тупо не отображает прогрессбар.
Ниже пример моего метода..
Код: Выделить всё
void getFileList(String dirPath) throws IOException
{
String tmpstring,AuthorName,AuthorLastName,BookTitle,Seria,strEncode;
String strExt,strMessage;
Integer fileCount,counter;
BookList.clear();
File f1 = new File(dirPath);
TitlePath=dirPath;
File[] list = f1.listFiles();
if(list == null)
list = new File[]{};
fileCount=list.length;
ProgressDialog pd = new ProgressDialog(this);
pd.setTitle("Сканирование каталога");
strMessage="Чтение тэгов из "+fileCount.toString();
pd.setMessage(strMessage);
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pd.setMax(fileCount);
counter=0;
pd.setIndeterminate(true);
pd.show();
//Handler h = new Handler() {
// public void handleMessage(Message msg) {
List<File> fileList = Arrays.asList(list);
Collections.sort(fileList, new Comparator<File>() {
@Override
public int compare(File file, File file2) {
if (file.isDirectory() && file2.isFile())
return -1;
else if (file.isFile() && file2.isDirectory())
return 1;
else
return file.getPath().compareTo(file2.getPath());
}
});
//Arrays.sort( filelist);
CurPath=dirPath;
FullPathText = (TextView) findViewById(FullPath);
FullPathText.setText(CurPath);
for (File file : fileList) {
if (file.isDirectory()) {
FileName = file.getName();
BookName = "Dir";
fileExt = 1;
} else {
FileName = file.getName();
BookName = "Моя книга";
strExt = FileName.substring(FileName.lastIndexOf("."));
switch (strExt) {
case ".fb2":
fileExt = 2;
strEncode = getFileEncode(file);
tmpstring = getFileHeader(file, 50, strEncode);//выбираем первые N строк
//tmpstring=getfb2Tag(tmpstring,"title-info");//обрезаем лишнее, что бы не зацепить серию от издаетля, типа Фантастический боевик и т.д.
BookTitle = getfb2Tag(tmpstring, "book-title");//берем название
AuthorLastName = getfb2Tag(tmpstring, "last-name");//берем имя автора
AuthorName = getfb2Tag(tmpstring, "first-name");//берем фамилию автора
Seria = getfb2Tag(tmpstring, "seria");
BookTitle = AuthorLastName + " " + AuthorName + "-" + BookTitle;
if (BookTitle.length() > 0) {
FileName = BookTitle;
}
;
if (Seria.length() > 0) {
BookName = Seria;
} else {
BookName = "";
}
break;
case ".zip":
fileExt = 3;
tmpstring = getZipTitle(file);
//tmpstring=getfb2Tag(tmpstring,"title-info");//обрезаем лишнее, что бы не зацепить серию от издаетля, типа Фантастический боевик и т.д.
BookTitle = getfb2Tag(tmpstring, "book-title");//берем название
AuthorLastName = getfb2Tag(tmpstring, "last-name");//берем имя автора
AuthorName = getfb2Tag(tmpstring, "first-name");//берем фамилию автора
Seria = getfb2Tag(tmpstring, "seria");
BookTitle = AuthorLastName + " " + AuthorName + "-" + BookTitle;
if (BookTitle.length() > 0) {
FileName = BookTitle;
}
;
if (Seria.length() > 0) {
BookName = Seria;
} else {
BookName = "";
}
break;
default:
fileExt = 4;
break;
}
}
Book tmpBook = new Book(FileName, BookName, fileExt);
BookList.add(tmpBook);
CurPath = file.getPath();
counter = counter + 1;
pd.setProgress(counter);
pd.incrementProgressBy(1);
}
pd.dismiss();
lvMain.setAdapter(bookAdapter);
}