آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

استفاده از Thread

sun.of.god.7  11 سال پیش  11 سال پیش
0 0

سلام  و خسته نباشید به همه

من یک برنامه ساده نوشتم که سوالات 4 گزینه ای طرح میشه به طور رندوم اگه کاربر جواب درست بده میگه درسته و سوال بعدی نمایش میده اگرم درست نباشه میگه غلطه و میره سوال بعد

تا اینجا هیچ مشکلی نیست اما من میخوام برای هر سوال 4 ثانیه وقت بده تو این 4 ثانیه اگه یکی از 4گزینه زده شد چک کنه درست هست یا نه و بره بعدی

اما اگه گزینه ای زده نشد بگه نادرست و بره سوال بعد

اگه زحمتی نیست با یه تکه کد و یکم توضیح به سوالم جواب بدین ممنون

 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
Vahid  11 سال پیش
+1 0

از کد زیر می تونید استفاده کنید هر چند تو آموزش ها هست:

         Thread thread = new Thread(new Runnable() {

@Override
public void run() {
try {
while (true) {
Thread.sleep(1000);
//کدی که می خواید تکرار بشه رو اینجا قرار دهید
}
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
});
thread.start();

در ضمن اگه می خوای عناصر Ui رو تغییر بدی حتما باید از Handler استفاده کنی.

 

 
پاسخ به سوال 
Eclipse  11 سال پیش
+1 0

این کد از آموزش استاد در  پروژه Time Downer با کمی تغییرات گرفته شده

وقتی که کاربر جواب درست داد Time_Downer  رو مساوی صفر قرار بده و مقدار answer رو برابر با true

  private int Time_Downer = 4;//ثانیه 
private int numTxtCount;// مقدار داخل تکست ویو
private boolean answer; // تعیین درست یا غلط بودن جواب کاربر یا تمام شدن زمان چهار ثانیه

thread = new Thread(new Runnable() {
@Override
public void run() {
while (Time_Downer > 0) {
numTxtCount = Time_Downer;
try {
for (int i = 0; i < 9; i++) {
Thread.sleep(100);
if (Time_Downer == 0)
break;
}
}
catch (InterruptedException e) {
e.printStackTrace();
}
if (Time_Downer != 0) {
Time_Downer--;
numTxtCount--;
}
if (txtViewCounter != null) {
G.HANDLER.post(new Runnable() {

@Override
public void run() {
txtViewCounter.setText(Integer.toString(numTxtCount));
}
});
}
}
if (numTxtCount == 0) {

answer = false;// اگه زمان صفر بشه مقدار تغییر میکنه به false
}
G.HANDLER.post(new Runnable() {

@Override
public void run() {
if (answer) {
//اگه جواب درست بود اینجا کد مربوط به درستی جواب نوشته میشه
}
else {
//اگه جواب غلط بود اینجا کد مربوط به غلط بودن جواب نوشته میشه
}
}
});
0 0
ممنون از راهنمایی هردو ولی کار من راه نیوفتاد توی سی شارپ یک کنترلی بود به اسم timer تو اندروید چیزی مشابه اون هست ؟ چون با thread خیلی کار پیچیده هست (11 سال پیش)
+1 0
اینجا یه سری بزن : لینک (11 سال پیش)

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