首页 > 解决方案 > Android numberPicker to countdownTimer

问题描述

我想将 numPicker 的值设置为 countdowntimer 按钮以启动和取消,但它不起作用。

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();
            }
        };
    }

标签: javaandroidcountdowntimernumberpicker

解决方案


推荐阅读