I want to get numPicker's value to countdowntimer button to start and cancel but it doesn't work.
public class TimeManager extends AppCompatActivity {
private NumberPicker np1 = null;
private NumberPicker np2 = null;
private Button bt1 = null;
private Button bt2 = null;
private Button bt3 = null;
private TextView tv = null;
private final long t1 = np1.getValue() * 3600*1000;
private final long t2 = np2.getValue() * 60;
private CountDownTimer cdt;
@RequiresApi(api = Build.VERSION_CODES.Q)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_time_manager);
np1 = (NumberPicker) findViewById(R.id.numPicker);
np2 = (NumberPicker) findViewById(R.id.numPicker2);
bt1 = (Button) findViewById(R.id.button2);
bt2 = (Button) findViewById(R.id.button4);
bt3 = (Button) findViewById(R.id.button5);
tv = (TextView) findViewById(R.id.textView4);
np1.setOnValueChangedListener(nplis1);
np2.setOnValueChangedListener(nplis2);
bt1.setOnClickListener(btlis1);
bt2.setOnClickListener(btlis2);
bt3.setOnClickListener(btlis3);
np1.setMinValue(0); //設定最小值
np1.setMaxValue(23); //設定最大值
np1.setValue(1); //設定現值
np1.setWrapSelectorWheel(true);
np1.setTextSize(60f);
np2.setMinValue(0); //設定最小值
np2.setMaxValue(59); //設定最大值
np2.setValue(1); //設定現值
np2.setWrapSelectorWheel(true);
np2.setTextSize(60f);
cdt = new CountDownTimer(t1 + t2, 1000) {
@Override
public void onTick(long millisUntilFinished) {
long t3 = millisUntilFinished / 1000;
tv.setEnabled(false);
tv.setText(t3 + "秒");
}
@Override
public void onFinish() {
tv.setEnabled(true);
tv.setText("重新发送");
cancel();
}
};
}
NumberPicker.OnValueChangeListener nplis1 = new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
String value = "" + newVal;
}
};
NumberPicker.OnValueChangeListener nplis2 = new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
int nowValue = np2.getValue(); //取得現值
}
};
View.OnClickListener btlis1 = new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent it = new Intent(TimeManager.this, Home.class);
startActivity(it);
}
};
View.OnClickListener btlis2 = new View.OnClickListener() {
@Override
public void onClick(View v) {
cdt.start();
}
};
View.OnClickListener btlis3 = new View.OnClickListener() {
@Override
public void onClick(View v) {
cdt.cancel();
}
};
}