[英]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
獲取文本時,您需要處理所有情況。
EditText
為空怎么辦? 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.