0
我有兩個editText字段,並在其自己的addTextChangedListeners中具有以下TextWatchers。輸入是正確讀取和處理的,但是我輸入的數字在第二個字段(editText2)中的顯示器上沒有顯示(即使我在等待(sleep()inTextChanged())一會兒,然後繼續設置兩個字段的值將空值設置爲第一個字段的焦點編號在輸入時不顯示在editText字段中(Android 2.2)
在第一個字段中輸入數字會發生什麼:數字在字段中顯示,焦點移動到第二個字段在第二個字段中輸入數字會發生什麼字段:光標(閃爍的垂直線)被凍結,沒有數字顯示,兩秒後:光標移到第一個字段,兩個字段都是空的。除了在第二個字段中輸入的數字應該是顯示然後系統應該凍結顯示該號碼一段時間後,設置爲空,並移動到第一個字段。
什麼是錯,如何解決?
public class Spel extends FragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.spel);
editText1 = (EditText) findViewById(R.id.editText1);
editText1.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
if (before==0) { // alleen doen als editText1 leeg was
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")) {
editText2.requestFocus();
int baanWorpScore = Integer.parseInt(v);
banenWorpScore[0] = baanWorpScore;
}
else {
// blijf wachten op goede invoer
editText1.setText(null);
}
}
}
});
editText2 = (EditText) findViewById(R.id.editText2);
editText2.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@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")) {
editText1.requestFocus();
editText1.setText(null);
editText2.setText(null);
int baanWorpScore = Integer.parseInt(v);
banenWorpScore[1] = baanWorpScore;
}
else {
// blijf wachten op goede invoer
editText2.setText(null);
}
}
});
}