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

یک سوال خیلی ساده

مدیریت گفتگو
Ali asqar akhavan mahdavi 10 سال پیش
آخرین تغییر: 10 سال پیش

سلام دوستان.وقت بخیر

دارم یه بازی مینویسم که میخوام وقتی مثلا کلید btn زده میشه 3 ثانیه بعدش یه عملیاتی انجام بشه.اگه دوباره زده شد اون 3 ثانیه از اول شمرده شه.متوجه منظورم شدین؟

ممنون میشم اگه راهنمایی کنین

نظرات

پاسخ‌ها 2

mhpakdel 10 سال پیش

برای تأخیر از کدی که خود استاد هم در اوایل آموزش ها توضیح دادن هم میتونید استفاده کنید. از این کد هم میتونید استفاده کنید:

 Timer timer = new Timer();
timer.schedule( new TimerTask() {
    public void run() {
       // کاری که قراره انجام بشه 
    }
 }, 0, 60*1000);

برای کنسل کردن تأخیر هم از کد زیر استفاده کنید:

 timer.cancel();

نظرات

دوست عزیز در ابتدا تشکر میکنم از پاسختون.اما نمیدونم چرا چیزی که میخوام در نمیاد. یه زحمتی بکش اگه امکان داره. یه کلید و یه تکست ویو بذار .میخوام هر بار کلیک میشه، از 3 تا 1 معکوس بشماره.هر شمردنی 1 ثانیه طول بکشه.هربار که کلیک شد، از اول شروع کنه به شمردن.من بیچاره شدم نتونستم این قطعه رو درست دربیارم ;-(
mhpakdel 10 سال پیش
چشم حتما سر فرصت انجامش میدم و کدهاشو میذارم یا خود پروژه رو. اما اگه دیر شد ببخشید و امیدوارم زودتر از خودم یا خودتون به نتیجه برسید یا دوستان دیگه همت کنن.
ممنون دوست عزیز.لطف کردی.امیدوارم کسی پاسخ من رو بده.چون ان شالله فردا عقد میکنم و کلا گرفتار میشم.یاعلی
حمید 10 سال پیش
سلام من تازه اندروید رو شروع کردم. تا اینجا که آموزش ها رو دیدم یه راه به نظرم میرسه. ولی شاید راه های خیلی بهتری باشه اما من نمیدونم. از نخ ها (thread ) استفاده کنید و درون listener دکمه نخ را 3000 میلی ثانیه sleep کنید و بعدش کدهاتون رو بنویسید.
Spirit 10 سال پیش

اینم کادوی ما به مناسبت عقد شما D: خوشبخت شین :)

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MyActivity extends Activity {

final Handler handler = new Handler();
final int interval = 1 * 1000;
int counter = 5;

private TextView tv;
private Button btn;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv = (TextView) findViewById(R.id.tvTimer);
btn = (Button) findViewById(R.id.btnTimer);

startTimer();

btn.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View view) {
resetTimer();
}
});

}

private void startTimer() {
handler.postDelayed(runnable, interval);
}


private void updateTeexview() {
tv.setText(counter + " Seconds remain");
}

private void removeTimer() {
handler.removeCallbacks(runnable);
}

private void resetTimer() {
removeTimer();
counter = 5;
startTimer();
updateTeexview();
}

private void timesUp() {
removeTimer();
Toast.makeText(this, "It's over!", Toast.LENGTH_SHORT).show();
}

Runnable runnable = new Runnable() {
@Override
public void run() {
if (counter == 0) {
timesUp();
return;
}
counter--;
startTimer();
updateTeexview();
}
};
}

راه بهتر و کوتاه تر هم ممکنه وجود داشته باشه.

نظرات

mhpakdel 10 سال پیش
دست مریزاد جناب نصرتی عزیز. شاید منظور ایشون عقد قرارداد پروژه بوده!! ولی به هر حال بازم تبریک به جناب اخوان

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