بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
یک سوال خیلی ساده
سلام دوستان.وقت بخیر
دارم یه بازی مینویسم که میخوام وقتی مثلا کلید btn زده میشه 3 ثانیه بعدش یه عملیاتی انجام بشه.اگه دوباره زده شد اون 3 ثانیه از اول شمرده شه.متوجه منظورم شدین؟
ممنون میشم اگه راهنمایی کنین
برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال
mhpakdel
10 سال پیش
+1
0
برای تأخیر از کدی که خود استاد هم در اوایل آموزش ها توضیح دادن هم میتونید استفاده کنید. از این کد هم میتونید استفاده کنید:
Timer timer = new Timer();
timer.schedule( new TimerTask() {
public void run() {
// کاری که قراره انجام بشه
}
}, 0, 60*1000);
برای کنسل کردن تأخیر هم از کد زیر استفاده کنید:
timer.cancel();
دوست عزیز در ابتدا تشکر میکنم از پاسختون.اما نمیدونم چرا چیزی که میخوام در نمیاد. یه زحمتی بکش اگه امکان داره. یه کلید و یه تکست ویو بذار .میخوام هر بار کلیک میشه، از 3 تا 1 معکوس بشماره.هر شمردنی 1 ثانیه طول بکشه.هربار که کلیک شد، از اول شروع کنه به شمردن.من بیچاره شدم نتونستم این قطعه رو درست دربیارم ;-( (10 سال پیش)
پاسخ به سوال
Spirit
10 سال پیش
+1
0
اینم کادوی ما به مناسبت عقد شما 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();
}
};
}
راه بهتر و کوتاه تر هم ممکنه وجود داشته باشه.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .