【问题标题】:How to take input from user while using CountDownTimer in android在android中使用CountDownTimer时如何从用户那里获取输入
【发布时间】:2015-09-29 19:33:01
【问题描述】:

在下面的 CountDownTimer,我希望用户输入值以毫秒为单位,而不是预加载的值 30000。 在这种情况下,请任何人帮助。我无法弄清楚自己。

public class MainActivity extends AppCompatActivity {

    TextView mTextField;
    EditText mEditText;
    Button mButton;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mTextField = (TextView) findViewById(R.id.timerView);
        mButton = (Button) findViewById(R.id.startButton);


        mButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // Turning of the button until the timer finishes
                mButton.setEnabled(false);
                mButton.setClickable(false);

                new CountDownTimer(30000, 1000) { // Here I want to have a user input value in milli seconds instead of pre loaded value of 30000

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

                    public void onFinish() {
                        mTextField.setText("done!");
                        // Turning on the button when the timer has finnished
                        mButton.setEnabled(true);
                        mButton.setClickable(true);
                    }
                }.start();


            }
        });

    }

}**strong text**

【问题讨论】:

    标签: android input countdowntimer


    【解决方案1】:

    这很简单,为用户输入提供任何选项,例如编辑文本,然后将这些值作为参数传递给 CountDownTimer。

    // 3000 and 200 will be input from user
    long millisinFuture= 3000;
    long delayTime=200;
    
    new CountDownTimer(millisinFuture, delayTime) { // Here I want to have a user input value in milli seconds instead of pre loaded value of 30000
    
                    public void onTick(long millisUntilFinished) {
                        mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
                    }
    
                    public void onFinish() {
                        mTextField.setText("done!");
                        // Turning on the button when the timer has finnished
                        mButton.setEnabled(true);
                        mButton.setClickable(true);
                    }
                }.start();
    

    【讨论】:

    • 感谢您的回答。我想接受整数输入,但如何将其转换为毫秒,以便将其传递给 CountDowntimer。
    • 您必须决定是否要输入小时、秒或分钟,如果是秒,则可以使用以下标准 1 秒 = 1000 毫秒进行转换,并且您应该知道如何使用 long和int
    • 实际上我在解析编辑文本字段时遇到问题。无法找到正确的语法来解析我将其作为整数到毫秒的编辑文本值
    • 您可以编辑您的问题并在此处添加您面临的问题或单独发布或详细说明
    猜你喜欢
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    • 2017-09-14
    相关资源
    最近更新 更多