بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

مشکل در اجرای progress bar ha

مدیریت گفتگو
Android 11 سال پیش
آخرین تغییر: 11 سال پیش

دوستان سلام(مشکل حل شد)

من توی نرم افزارم یازده تا progress bar گذاشتم و واسه هر کدوم یه دکمه تعریف کردم که هر کدوم یه کار جداگونه انجام میده و یه thread هم تعریف کردم که progress bar ها رو کنترل میکنه.ولی مشکلم اینه که وقتی میخوام یازده تا دکمه با هم کارشون رو انجام بدن روی دکمه های دوم به بعد که کلیک می کنم progress bar های قبلی متوقف میشن و بعدی ها از ادامه ی قبلی شروع میشن.هر ترفندی زدم نشد.الام دو هفته است همین جا گیر کردم.uncocoder و stackoverflow و kelidestan و ... رو هم زیر و رو کردم چیزی عایدم نشد.لطفا یکی کمکم کنه . . . فدا

نظرات

کاشی زاده 11 سال پیش
مطمئنا مشکل در کد نویسی شما وجود داره و نتونستید همزمانی را به طور صحیح پیاده کنید ، بخشی از کد که مربوط به ایجاد ترد ها و نمونه سازی از آن ها میباشد را قرار دهید .

پاسخ‌ها 2

Android 11 سال پیش

threadاینم اکتیویتی

import android.content.ContentResolver;
import android.database.Cursor;
import android.provider.ContactsContract;
import android.util.Log;
import android.widget.ProgressBar;

public class ThreadCustom extends Thread {
    public int position;
    private ProgressBar progressBar;
    long[] startValue = {st1,st2,st3,st4,st5,st6};
    long[] endValue = {en11,en3,en0,en2,en4,en6};
    int valueStart = (int) startValue[position];
    int valueEnd =(int) endValue[position];

    @Override
    public void run() {
        super.run();
        Rnumber901();
    }

    public void setProgressBar(ProgressBar value) {
        progressBar = value;
    }
    public void getIndex(String itemName)
    {
        for (int i = 0; i < startValue.length; i++)
        {
            position = i;
        }
    }
    public void Rnumber901() {
        int percent = 0;
        for (int i =valueStart ; i < valueEnd; i++) {
            if (valueEnd % valueStart == 0) {
                percent++;
                final int finalPercent = percent;
                Progress.handler.post(new Runnable() {
                    @Override
                    public void run() {
                        if (progressBar != null) {
                            progressBar.setProgress(finalPercent);
                        }
                    }
                });
            }
        }
    }
}

نظرات

Criss 11 سال پیش

برای هر دکمه کد زیر رو بزار < و نیاز به استفاده از یک کلاس بصورت  extends Thread نیست <

 Thread thread = new Thread(new Runnable() {

@Override
public void run() {
//progressBar.set

}
});
thread.start();

و یا یک متد < ایجاد کن و پروگرسبار با رو بگیر <  و کد بالا رو درون متد بزار <

که مفصل تر توی اون یکی تاپیکتون توضیح دادم  !

 

 

 

 

نظرات

Android 11 سال پیش
fada criss jan

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .