ست کردن progressbar
با عرض سلم و خسته نباشید.بنده یک دایرکتوری دارم که تعدادی فایل داخلشه..یک باتن دارم وقتی روش کلیک میشه تمامی فایلهای اون دایرکتوری رو پاک میکنه و اصلا مشکلی نیست....حالا سوالم اینجاست چجوری میتونم پاک شدن فایلها رو به پروگرس بار ست کنم و تعداد فایلهای حذف شده و باقی مانده رو تو پروگرش نشون..والا در مورد لیسنرها تحقیق کردم ولی نتونستم پیاده سازیش کنم ...پیشاپیش ممنون.قطعه کد حذف فایلهای دایرکتوری....اینجا مثلا تست نوشتم اسم دایرکتوری رو.
public void clearData() {
if (new File("test").isDirectory())
{
String[] children = new File(G.DIR_TELEGRAM_CACH).list();
for (int i = 0; i < children.length; i++)
{
new File(test, children[i]).delete();
}
}
}
publicvoid clearData(OnDeleteComplete listener){
if(newFile("test").isDirectory())
{
String[] children =newFile(G.DIR_TELEGRAM_CACH).list();
for(int i =0; i < children.length; i++)
{
newFile(test, children[i]).delete();
listener(i+1);
}
}
}
که این کد شماره ی فایل رو بر میگردونه
public void clearData(OnDeleteCompleteListener listener) {
if (new File(DIR_TEST).isDirectory())
{
float deletePercent = 0;
int deleteSize = 0;
String[] children = new File(DIR_TEST).list();
for (int i = 0; i < children.length; i++)
{
deleteSize += i;
deletePercent = 100.0f * deleteSize;
if (listener != null) {
listener.onProgressDelete((int) deletePercent);
}
new File(DIR_TEST, children[i]).delete();
// listener(i + 1);
}
}
}
public void clearData(final OnDeleteCompleteListener listener) {
if (new File(DIR_TEST).isDirectory())
{
float deletePercent = 0;
int deleteSize = 0;
String[] children = new File(DIR_TEST).list();
for (int i = 0; i < children.length; i++)
{
deleteSize += i;
deletePercent = (float) deleteSize / children.length * 100.0f;
final float deletepercent2 = deletePercent;
if (listener != null) {
G.HANDLER.post(new Runnable() {
@Override
public void run() {
listener.onProgressDelete((int) deletepercent2);
}
});
}
new File(DIR_TEST, children[i]).delete();
}
}
}
شما اگه طبق گفته خودتون تعداد فایل هایی که میخواین حذف کنید رو بدست بیارید این کد به نظر من اشتباه هست و شما اول تعداد فایل ها رو که بدست آوردین بعد به تعداد فایل هاتون عمل حذف رو انجام میدین با این کد تعداد فایل ها رو بگیرید بعد هر فایلی رو که حذف کردید لیسنر رو صد بزنید
File dir =newFile("yourfolder");
File[] files = dir.listFiles();
int numberOfFiles=files.length;
برای پرگرس بارتون این کار رو انجام بدید
PrgressBar.setMax = children.length;
PrgressBar.setProgress(children[i].getindex); // این قسمت مثال هست
از آرایه داینامیک استفاده کنید خیلی بهتر هست < آرایه های استاتیک GetIndex رو الان خاطرم نیست چطوری میشه گرفت
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .