RequestFocus kører to gange
I min Android-projekt har jeg to ZanyEditTexts (se http://stackoverflow.com/questions/4886858/android-edittext-deletebackspace-key-event/11377462 for hvad ZanyEditTexts er - kort sagt: det er bare en udvidelse på en EditText der gør det muligt at fange TILBAGE-knappen på et soft-tastatur på en Android-phone), kasser med lige højde og bredde, som er oprettet i en for-loop:for (int i=0;i<strMyWord.length();i++)
{
final ZanyEditText edtKnownCharacter = new ZanyEditText(this);
edtKnownCharacter.setLayoutParams(paramblock);
edtKnownCharacter.setId(i);
}
Jeg har undladt nogle parameters til ZanyEditText, da de ikke er vigtige til mit spørgsmål.
Jeg har valgt at bruge ZanyEditText da det skal være mulig at navigere tilbage til tidligere bokse når man trykker på TILBAGE på et soft-tastatur (IME), hvilket Google af uransagelige årsager ikke mere understøtter by default.
Så jeg har lavet en OnKeyListener:
edtKnownCharacter.setOnKeyListener(new OnKeyListener()
{
@Override
public boolean onKey(View v, int keyCode, KeyEvent event)
{
if(keyCode == KeyEvent.KEYCODE_DEL)
{
Integer intFocused;
intFocused =(PlaygameActivity.this.getCurrentFocus().getId());
EditText edtNewFocus = (EditText) findViewById((intFocused-1));
edtNewFocus.requestFocus();
}
return false;
}
});
Der er bare to ting som jeg simpelthen ikke forstår:
1.
Hvorfor skifter focus TO bokse til venstre, når man trykker på TILBAGE-knappen? Jeg har prøvet "findViewById" til intFocused i stedet for intFocused-1 men det flytter focus slet ikke.
Så det ser ud til at requestfocus bliver kørt to gange.
2.
Hvorfor virker koden kun, når boksen er tom? Så snart der står et bogstav i en boks, OnKeyListener virker slet ikke.
Jeg håber at nogen kan lyse mine tanker lidt op...