我不明白我的代碼的行爲。總而言之,我有一個以「00」開頭的editText(在我的代碼中可變的小時數)。我正在創建一個線程,以防止此editText不具有2位數字。讓我們假設這個editText不能超過2位數。我正在做的是我創建一個線程。在這個線程中,只要這個editText沒有2個數字(所以是1個數字),我就添加一個「0」。runOnUiThread()和Android上的無限循環
但是,無論何時只要在editText上放置一個數字,它都會變得瘋狂並進入無限循環和其他我不明白的東西。這裏是我的代碼:
Thread digitLessThanTwoThread;
EditText hours = (EditText) findViewById(R.id.hours);
digitLessThanTwoThread= new Thread(){
@Override
public void run()
{
while(true) {
if (hours.getText().toString().length() != 2 && !hours.isFocused()) {
main_activity.runOnUiThread(new Runnable() {
@Override
public void run() {
hours.setText("0" + hours.getText().toString());
}
});
}
}
}
};
digitLessThanTwoThread.start();
此外,在最後,editText小時顯示「00」。 在做任何事情之前,我還會收到一條消息「暫停所有線程:XXX秒」!
如果您從未再次輸入'while(true)',您可能會看到生活質量得到改善 – drelliot