我一直在寻找一段时间,但我以前没能找到它。 我的目标是让用户能够在文本字段中设置自己的输入时间,然后让他们设置一个计时器,一旦时间= 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>
答案 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
}