Hallo zusammen!
Ich habe ein Problem, von dem ich hoffe, dass ihr mir weiterhelfen könnt.
In einer Activity sind sechs Textfelder (EditText) definiert.
Sechzehn Buttons dienen dazu, etwas in diese Felder einzugeben (die virtuelle Tastatur habe ich abgeschaltet durch (myEditText.setInputType(InputType.TYPE_NULL)).
Nun möchte ich Android dazu bewegen zum nächsten EditText zu springen, wenn ein Butto gedrückt wurde.
Dazu habe ich eine Methode onButtonClick eingerichtet:
Java
public void onButtonClick(View v) {
String wert = "";
switch (v.getId()) {
case R.id.reihe1_X: { wert = "X"; break; }
case R.id.reihe1_10: { wert = "10"; break; }
case R.id.reihe1_9: { wert = "9"; break; }
case R.id.reihe1_8: { wert = "8"; break; }
case R.id.reihe2s_7: { wert = "7"; break; }
case R.id.reihe2n_7: { wert = "7"; break; }
case R.id.reihe2s_6: { wert = "6"; break; }
case R.id.reihe2s_M: { wert = "M"; break; }
case R.id.reihe2n_6: { wert = "6"; break; }
case R.id.reihe2n_5: { wert = "5"; break; }
case R.id.reihe2n_4: { wert = "4"; break; }
case R.id.reihe3_3: { wert = "3"; break; }
case R.id.reihe3_2: { wert = "2"; break; }
case R.id.reihe3_1: { wert = "1"; break; }
case R.id.reihe3_M: { wert = "M"; break; }
case R.id.reihe4_Clear: { wert = ""; break; }
}
if (findViewById(R.id.wert1).hasFocus()) {
((EditText) findViewById(R.id.wert1)).setText(wert);
((EditText) findViewById(R.id.wert2)).requestFocus();
}
if (findViewById(R.id.wert2).hasFocus()) {
((EditText) findViewById(R.id.wert2)).setText(wert);
((EditText) findViewById(R.id.wert3)).requestFocus();
}
if (findViewById(R.id.wert3).hasFocus()) {
((EditText) findViewById(R.id.wert3)).setText(wert);
((EditText) findViewById(R.id.wert4)).requestFocus();
}
if (findViewById(R.id.wert4).hasFocus()) {
((EditText) findViewById(R.id.wert4)).setText(wert);
((EditText) findViewById(R.id.wert5)).requestFocus();
}
if (findViewById(R.id.wert5).hasFocus()) {
((EditText) findViewById(R.id.wert5)).setText(wert);
((EditText) findViewById(R.id.wert6)).requestFocus();
}
if (findViewById(R.id.wert6).hasFocus()) {
((EditText) findViewById(R.id.wert6)).setText(wert);
((EditText) findViewById(R.id.wert6)).requestFocus();
}
}
Alles anzeigen
Das funktioniert aber so nicht. Wenn ich ein Wert in ein Feld (per Button) eingebe, erscheint dieser Wert zeitgleich in den übrigen 5 Felder und der Fokus wechselt nicht. Was mache ich falsch? Hat jemand eine Idee?
Vielen Dank im Voraus!
Grossi