Button onClick 是否在单击事件中创建和销毁视图?
Does a Button onClick create and destroy the view within the event of clicking?
我有一个应该模拟计时器的 Android 应用程序,问题是当我点击应该启动计时器的按钮时,CountDownTimer
立即触发 onFinish 方法,导致日志条目说计时器已经结束并在 phone 上显示祝酒词。 Dows 按钮 onClick
在点击事件中调用创建和销毁视图?
这是按钮调用的方法:
public void onClick(View v){
numberPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
timerValue = newVal*1000;
}
});
new CountDownTimer(timerValue, 1000){
@Override
public void onTick(long millisUntilFinished) {
Log.i("robeh accadono", String.valueOf(millisUntilFinished/1000));
}
@Override
public void onFinish() {
Toast.makeText(MainActivity.this, "Il timer è arrivato alla fine", Toast.LENGTH_SHORT).show();
Log.i("Fatto!", "finito");
}
}.start();
}
似乎按下按钮时 timerValue
变量根本没有赋值
从您的点击事件中删除这段代码,并在按钮点击代码片段之前使用它
numberPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
timerValue = newVal*1000;
}
});
嗨,尼古拉,只需将您的代码更改为:
public void onClick(View v){
int timerValue = numberPicker.getValue() * 1000;
new CountDownTimer(timerValue, 1000){
@Override
public void onTick(long millisUntilFinished) {
Log.e("robeh accadono", String.valueOf(millisUntilFinished/1000));
}
@Override
public void onFinish() {
Toast.makeText(Test.this, "Il timer è arrivato alla fine", Toast.LENGTH_SHORT).show();
Log.e("Fatto!", "finito");
}
}.start();
}
希望对您有所帮助!!!
我有一个应该模拟计时器的 Android 应用程序,问题是当我点击应该启动计时器的按钮时,CountDownTimer
立即触发 onFinish 方法,导致日志条目说计时器已经结束并在 phone 上显示祝酒词。 Dows 按钮 onClick
在点击事件中调用创建和销毁视图?
这是按钮调用的方法:
public void onClick(View v){
numberPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
timerValue = newVal*1000;
}
});
new CountDownTimer(timerValue, 1000){
@Override
public void onTick(long millisUntilFinished) {
Log.i("robeh accadono", String.valueOf(millisUntilFinished/1000));
}
@Override
public void onFinish() {
Toast.makeText(MainActivity.this, "Il timer è arrivato alla fine", Toast.LENGTH_SHORT).show();
Log.i("Fatto!", "finito");
}
}.start();
}
似乎按下按钮时 timerValue
变量根本没有赋值
从您的点击事件中删除这段代码,并在按钮点击代码片段之前使用它
numberPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
timerValue = newVal*1000;
}
});
嗨,尼古拉,只需将您的代码更改为:
public void onClick(View v){ int timerValue = numberPicker.getValue() * 1000;
new CountDownTimer(timerValue, 1000){
@Override
public void onTick(long millisUntilFinished) {
Log.e("robeh accadono", String.valueOf(millisUntilFinished/1000));
}
@Override
public void onFinish() {
Toast.makeText(Test.this, "Il timer è arrivato alla fine", Toast.LENGTH_SHORT).show();
Log.e("Fatto!", "finito");
}
}.start();
}
希望对您有所帮助!!!