簡體   English   中英

CountDownTimer-EditText將不會獲得整數

[英]CountDownTimer - EditText won't get an Integer

嘗試實現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());

嘗試從EditText獲取文本時,您需要處理所有情況。

  1. 如果EditText為空怎么辦?
  2. 如果EditText的值不是整數怎么辦? (“ 1bs25”或“ hello”)

在嘗試將值解析為Integer並啟動計時器之前,您需要考慮並正確處理它們。

確保您知道需要執行的操作順序。 這是一些偽代碼

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仍然為空。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM