گرفتن زمان از کاربر در پروژه شمارش گر معکوس استاد
سلام و خسته نباشید.
دوستان من میخواستم پروژه counter استاد رو یه تغییری بدم. قصدم این بود که با قرار دادن یک Plain Text زمان رو از کاربر بگیرم و با توجه به زمان وارد شده شمارشگر شروع به شمارش کنه .ولی چون من خیلی مبتدی هستم اصلا نمیدونم باید چه کدی رو کجا بنویسم. اگه میشه یه کمک بکنید. فقط خواهشا کامل توضیح بدین که چیکار کنم تا دستم راه بیافته، مرسی
سلام
در ابتدا مثلا یک تکست ویو معرفی میکنی
TextView txtcounter = (TextView) findviewbyid(R.id.txtcounter) ;
TextView count = (TextView) findviewbyid(R.id.count) ; ( اینم برای همون شمارنده زمان )
بعد الان مثلا کاربر میزنه عدد 80 . خب باید بیایم مقدار وارد شده رو تبدیل کنیم
int counter = Integer.parseint (txtcounter.gettext().toString()) ;
چون میدونی که این پروژه بهتره با مفهوم thread ها نوشته بشه پس میای تو کلاسی که اکستند شده از Thread اینا رو تو متد run مینویسی :
counter -- ;
int min = (int) Matih.floor (counter / 60 ) ; ( تو اینجا اومدیم اینو کد زدیم برای بالاتر از 60 که به دقیقه تبیدل بشه )
int sec = counter % 60
count.setrext (min + ":" + sec) ;
به همین سادگی :)
دوست عزیز متاسفانه مشکل از منه که نمیتونم مشکلم رو حل کنم و از کد های شما استفاده کنم
اینم از کد های استاد
public class ActivityMain extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView txtCounter = (TextView) findViewById(R.id.txtCounter);
ThreadCounter counter = new ThreadCounter();
counter.setSeconds(80);
counter.setTextView(txtCounter);
counter.start();
}
}
public class ThreadCounter extends Thread {
private int seconds;
private int counter;
private TextView textView;
public void setSeconds(int value) {
seconds = value;
counter = seconds;
}
public void setTextView(TextView value) {
textView = value;
}
@Override
public void run() {
super.run();
while (counter > 0) {
try {
Thread.sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
counter--;
if (textView != null) {
G.HANDLER.post(new Runnable() {
@Override
public void run() {
int min = (int) Math.floor(counter / 60);
int sec = (int) counter % 60;
String minPrefix = "";
if (min < 10) {
minPrefix = "0";
}
String secPrefix = "";
if (sec < 10) {
secPrefix = "0";
}
textView.setText(minPrefix + min + ":" + secPrefix + sec);
}
});
}
Log.i("LOG", "counter: " + counter);
}
G.HANDLER.post(new Runnable() {
@Override
public void run() {
Toast.makeText(G.context, "Alarm ! ! !", Toast.LENGTH_SHORT).show();
}
});
}
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .