addTextChangedListener で 1 秒待つにはどうすればよいですか? 次のコードは次のエラーを返します: E/AndroidRuntime(1003): java.lang.IllegalMonitorStateException: object not locked by thread before wait()
オブジェクトのメソッドwait()でのAndroidリファレンスでは、次のように述べています。このメソッドは、このオブジェクトのモニターを所有するスレッドによってのみ呼び出すことができます。スレッドがモニターの所有者になる方法については、notify() を参照してください。
そして、Object の notify() には、次のように書かれています。このメソッドは、このオブジェクトのモニターを所有するスレッドによってのみ呼び出すことができます。スレッドはオブジェクトのモニターの所有者になります。そのオブジェクトの同期メソッドを実行することによって。オブジェクトで同期する同期ステートメントの本体を実行する。•オブジェクトが Class 型の場合、同期された静的メソッドを実行する。
私がここで抱えている 1 つの問題: 理解できません...
ここで「一時停止」するにはどうすればよいですか?
public class Spel extends FragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.spel);
editText2 = (EditText) findViewById(R.id.editText2);
editText2.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
if (before==0) {
String v = s.toString();
if (v.equals("0") || v.equals("1") || v.equals("2") || v.equals("3") || v.equals("4") || v.equals("5") || v.equals("6") || v.equals("7") || v.equals("8") || v.equals("9")) {
try {
wait(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
editText1.requestFocus();
editText1.setText(null);
editText2.setText(null);
int baanWorpScore = Integer.parseInt(v);
}
else {
// blijf wachten op goede invoer
editText2.setText(null);
}
}
}
});