私のコードの動作が分かりません。要約すると、私は "00"で始まるeditText(私のコードでは時間が変わる)を持っています。私はこのeditTextが2桁を持たないようにするスレッドを作成しています。このeditTextは2桁を超えることはできません。私がしていることは、スレッドを作成することです。このスレッドでは、このeditTextに2桁(1桁)がないときはいつでも、それに "0"を追加します。runOnUiThread()とAndroidの無限ループ
しかし、私はeditTextに1桁の数字を入力するだけで、狂ってしまい、無限ループや他のものが分かりません。私のコードは次のとおりです。
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