CountDownTimer - EditText不会获得整数

时间:2014-11-20 14:48:44

标签: java android countdowntimer

我一直在"应用程序没有响应"在尝试实现CountDownTimer时。这就是我所拥有的:

private TextView mTextField;
private EditText secText;
private int secs;
private Button buttonStart, buttonStop;

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

    mTextField = (TextView) findViewById(R.id.textView1);
    secText = (EditText) findViewById(R.id.segText);
    buttonStart = (Button) findViewById(R.id.buttonStart);
    buttonStop = (Button) findViewById(R.id.buttonStop);
    secs = Integer.parseInt(secText.getText().toString());

    final CountDownTimer count = new CountDownTimer((secs*1000), 1000) {
         public void onTick(long millisUntilFinished) {
             mTextField.setText("Seconds remaining: " + millisUntilFinished / 1000);
         }
         public void onFinish() {
             mTextField.setText("FINISHED!");
         }
      };

问题在于它在尝试解析时使用此行,如果我输入了一个数字:

secs = Integer.parseInt(secText.getText().toString());

2 个答案:

答案 0 :(得分:0)

在尝试从EditText获取文本时,您需要处理所有案例。

  1. 如果EditText为空,该怎么办?
  2. 如果EditText中的值不是整数,该怎么办? (“1bs25”,或“你好”)
  3. 在尝试将值解析为Integer并启动计时器之前,您需要考虑这些事情并正确处理它们。

答案 1 :(得分:0)

确保您知道需要执行的操作顺序。这里有一些伪代码

if buttonstart_clicked
    get text from sectext
    if text is empty
        show error
    else if text is notANumber
        show error
    else
        parse text AND start timer

您忘记了起点是按钮点击,而不是应用程序的开始,因为那时您的edittext仍然是空的。