带有通知的CountDownTimer

时间:2014-06-14 13:01:22

标签: android notifications countdowntimer

我一直在寻找一段时间,但我以前没能找到它。 我的目标是让用户能够在文本字段中设置自己的输入时间,然后让他们设置一个计时器,一旦时间= 0,就会给他们一个通知

我能找到的最接近的是this,如果我可以开始工作,我可以简单地将时间更改为用户输入时间,但是我在mTextField上收到错误。

我认为我想要做的事情已经完成,但我无法找到它的任何例子。

任何人都有任何有用的链接或一些实际的代码?

提前致谢。

编辑: 根据要求,这是我尝试过的,只需做一个新活动并导入代码:

public class TestTimer extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.timer_test);    

new CountDownTimer(30000, 1000) {

     public void onTick(long millisUntilFinished) {
         mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
     }

     public void onFinish() {
         mTextField.setText("done!");
     }
  }.start();

        }

    });     
}

timer_test:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

    <Button
        android:id="@+id/timer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/timer" />
</LinearLayout>

1 个答案:

答案 0 :(得分:2)

这是因为mTextField必须存在于您的XML中但它不存在,只是尝试Log.d而不是在logcat中查看结果

<强>样品:

    public class TestTimer extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.timer_test);

TextView timer=(TextView)findViewById(R.id.mTextField);                             
     CountDownTimer my_timer = new CountDownTimer(30000, 1000) {

         public void onTick(long millisUntilFinished) {
             timer.setText("Seconds remaining: "+  (millisUntilFinished / 1000));
         }

         public void onFinish() {
            timer.setText("Seconds remaining: 0 ");
         }

    };

        my_timer.start(); //call this to start the timer
}