PDA

View Full Version : نمایش ساعت در برنامه



ali_khodayar
شنبه 25 بهمن 1393, 10:10 صبح
سلام خدمت دوستان.
میخواستم ببینم چطوری میشه ساعت رو در برنامه نمایش داد. البته در نمایش دادن ساعت مشکلی ندارم فقط مشکل من اینه که در چه قسمتی یا رویدادی باید کد رو نوشت که ثانیه شمار هر یک ثانیه عوض بشه و کاربر بتونه ببینه. کدی که من نوشتم همه چیز رو نمایش میده اما در حال تغییر نیست. فقط وقتی که از فرم خارج و دوباره وارد میشیم تغییر پیدا میکنه.


Calendar cal= Calendar.getInstance();
sb.append(cal.get(Calendar.HOUR));
sb.append(":");
sb.append(cal.get(Calendar.MINUTE));
sb.append(":");
sb.append(cal.get(Calendar.SECOND));

ali_khodayar
شنبه 25 بهمن 1393, 14:25 عصر
دوستان عزیز لطفأ اگر امکنش هست جواب بدین.
ممنون.

tux-world
شنبه 25 بهمن 1393, 14:35 عصر
اینو باید از CountDown Timer استفاده کنید و بگین که هر یک ثانیه به روز بشه

ali_khodayar
شنبه 25 بهمن 1393, 16:02 عصر
با تشکر از پاسختون.
امکانش هست یکم بیشتر توضیح بدین؟ کجا باید از این تابع استفاده کنم. به چه صورت؟
ممنون

ali_khodayar
یک شنبه 26 بهمن 1393, 11:25 صبح
من در مورد CountDown Timer جستجو کردم. تونستم ساعت رو درست نشون بدم. فقط تنها موردی که داره اینه که محدوده. یه مدت زمان محدود انجام میشه. چطوری میشه که این زمانش رو نامحدود کرد. ممنون
این هم از کد

public class MainActivity extends Activity implements OnClickListener {
private static final String tag = "Main";
private MalibuCountDownTimer countDownTimer;
private long timeElapsed;
private boolean timerHasStarted = false;
private Button startB;
private TextView text;
private TextView timeElapsedView;


private final long startTime =0;
private final long interval = 1000;


/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startB = (Button) this.findViewById(R.id.button);
startB.setOnClickListener(this);


text = (TextView) this.findViewById(R.id.timer);
timeElapsedView = (TextView) this.findViewById(R.id.timeElapsed);
countDownTimer = new MalibuCountDownTimer(startTime, interval);
text.setText(text.getText() + String.valueOf(startTime));
}


@Override
public void onClick(View v)
{
if (!timerHasStarted)
{
countDownTimer.start();
timerHasStarted = true;
startB.setText("Start");
}
else
{


countDownTimer.cancel();
timerHasStarted = false;
startB.setText("RESET");
}
}


// CountDownTimer class
public class MalibuCountDownTimer extends CountDownTimer
{


public MalibuCountDownTimer(long startTime, long interval)
{
super(startTime, interval);
}


@Override
public void onFinish()
{
text.setText("Time's up!");
timeElapsedView.setText("Time Elapsed: " + String.valueOf(startTime));
}


@Override
public void onTick(long millisUntilFinished)
{


Calendar cal= Calendar.getInstance();
StringBuilder sb= new StringBuilder();


sb.append(cal.get(Calendar.HOUR));
sb.append(":");
sb.append(cal.get(Calendar.MINUTE));
sb.append(":");
sb.append(cal.get(Calendar.SECOND));

text.setText(sb);
//timeElapsed = startTime - millisUntilFinished;
//timeElapsedView.setText("Time Elapsed: " + String.valueOf(timeElapsed));
}
}
}

gilas1368
یک شنبه 26 بهمن 1393, 11:55 صبح
این پست (http://stackoverflow.com/questions/6400846/updating-time-and-date-by-the-second-in-android) رو ی نیگا بنداز فک کنم اون چیزی ک میخای باشه

اگ اون نبود عبارت how to update time in every second android رو ی سرچی بزن

اگ بازم چیزی پیدا نکردی بعدازظهر ی نمونه برات میذارم

ali_khodayar
یک شنبه 26 بهمن 1393, 13:52 عصر
آقای gilas1368 دست شما درد نکنه این لینکی که دادید جواب داد. فقط یه مشکلی که هست اینه که من دارم ازش توی Fragment استفاده می کنم و به همین دلیل Handler رو نمیتونم final تعریف کنم. و توی برنامه از mhandler ارور میگیره. NullPointerException.
باید چیکار کنم؟

gilas1368
یک شنبه 26 بهمن 1393, 23:29 عصر
آقای gilas1368 دست شما درد نکنه این لینکی که دادید جواب داد. فقط یه مشکلی که هست اینه که من دارم ازش توی Fragment استفاده می کنم و به همین دلیل Handler رو نمیتونم final تعریف کنم. و توی برنامه از mhandler ارور میگیره. NullPointerException.
باید چیکار کنم؟


اینم ی تایمر توی Fragment
امیدوارم تونسته باشم مشکلت رو حل کنم

لیــــــــــــنک دانلود (http://www.4shared.com/rar/Uz68LlbPce/Timer.html)