RSS

Android Count Down Timer

16 Sep

Halo semua, sori nih uda lama gak posting.. Nah, btw kmaren gw baru nemu sesuatu yg menarik. Buat yg suka bikin game nih, kan biasa ada waktunya buat count down, ternyata di Android uda disediain kelasnya, jadi gampang banget. Oke deh, langsung aja, ini tutorialnya..

oke, pertama kita buat dulu XML yang isinya 1 TextView biasa aja, ntar TextView ini bakal buat nampilin count down nya:

main.xml:

<br />
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;<br />
&lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;<br />
android:orientation=&quot;vertical&quot;<br />
android:layout_width=&quot;fill_parent&quot;<br />
android:layout_height=&quot;fill_parent&quot;<br />
android:gravity=&quot;center&quot;<br />
&gt;<br />
   &lt;TextView<br />
   android:id=&quot;@+id/txtCount&quot;<br />
   android:layout_width=&quot;wrap_content&quot;<br />
   android:layout_height=&quot;wrap_content&quot;<br />
   android:text=&quot;00:30&quot;<br />
   /&gt;<br />
&lt;/LinearLayout&gt;<br />

nah, kalo uda, skrg kita buat coding java nya, coba ketikin kode di bawah:

Main.java:

<br />
package com.daniel.countdown;</p>
<p>import android.app.Activity;<br />
import android.os.Bundle;<br />
import android.os.CountDownTimer;<br />
import android.widget.TextView;<br />
import android.widget.Toast;</p>
<p>public class Main extends Activity {<br />
/** Called when the activity is first created. */</p>
<p>   TextView txtCount;<br />
   @Override<br />
   public void onCreate(Bundle savedInstanceState) {<br />
   super.onCreate(savedInstanceState);<br />
   setContentView(R.layout.main);</p>
<p>   txtCount = (TextView) findViewById(R.id.txtCount);<br />
   CountDown count = new CountDown(30000, 1000);<br />
   count.start();<br />
   }</p>
<p>   public class CountDown extends CountDownTimer<br />
   {<br />
      // TODO Auto-generated constructor stub<br />
      public CountDown(long millisInFuture, long countDownInterval) {<br />
      super(millisInFuture, countDownInterval);<br />
   }</p>
<p>   @Override<br />
   public void onFinish() {<br />
      // TODO Auto-generated method stub<br />
      txtCount.setText(&quot;00:00&quot;);<br />
      Toast.makeText(getBaseContext(), &quot;Selesai&quot;, Toast.LENGTH_LONG).show();<br />
   }</p>
<p>   @Override<br />
   public void onTick(long millisUntilFinished) {<br />
      // TODO Auto-generated method stub<br />
      int secondRemain = (int) (millisUntilFinished/1000);<br />
      if(secondRemain &gt; 9)<br />
      {<br />
         txtCount.setText(&quot;00:&quot;+secondRemain);<br />
      }<br />
      else<br />
      {<br />
         txtCount.setText(&quot;00:0&quot;+secondRemain);<br />
      }<br />
   }</p>
<p>   }<br />
}<br />

Oke, gw jelasin dikit, jadi kita lihat ke class CountDown dulu,
Pertama2 kalo kalian ketikkan:
public class CountDown extends CountDownTimer { }, maka akan ada tanda eclipse di error, klik saja tandanya di sebelah kiri, lalu klik add unimplemented method dan juga add constructor, maka dia akan membuat fungsi-fungsi nya sendiri.
Jadi ada constructor dimana nanti kita akan memasukkan nilai berapa lama total waktu di timer, dan juga waktu interval yang akan terjadi sebuah event (dalam tutorial ini, event nya yaitu meng-update tulisan pada TextView).
Nah, uda de, terus di fungsi onFinish(), kita ketikkan apa yg akan dilakukan ketika CountDown selesai, begitu juga di onTick(long millisUntilFinish), kita ketikkan apa yang akan dilakukan setiap interval. variabel millisUntilFinish ini berisi waktu yg tersisa sebelum finish dalam milisecond. Jangan lupa, semua waktu disini dalam milisecond.
Nah, lalu di onCreate, kita cuma perlu mengetikkan fungsi sederhana seperti di atas, jadi kita deklarasikan dulu object CountDown, dengan memasukkan parameter total waktu, dan interval (dalam millisecond, dalam hal ini total waktu 30 detik dan interval tiap 1 detik).
Oke, coba di jalankan, mudah kan??

hehe, sekian ya tutorialnya, semoga bermanfaat, kalo ada pertanyaan langsung aja seperti biasa.
Terima Kasih..

 
 

2 responses to “Android Count Down Timer

  1. Yusuf Err Found Rto

    September 22, 2011 at 5:26 pm

    thanks, you save my day dude,

     
  2. Amri Shodiq (@amrishodiq)

    December 12, 2011 at 7:40 pm

    Hi Mas,
    Udah lama nih gak posting tutorial lagi.

     

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
Follow

Get every new post delivered to your Inbox.

Join 537 other followers

%d bloggers like this: