Die nächste "Merkwürdigkeit" :
final EditText textField = (EditText) findViewById(R.id.codeTextfield);
textField.setOnEditorActionListener(new OnEditorActionListener()
{
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event)
{
if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN)
{
Log.d(LOG_TAG, "Enter Pressed");
return true;
}
return false;
}
});
Funtzt wenn ich enter im Emulator drücke. Drücke ich das Luoen Symbol ist der KeyEvent null und fliegt entsprechend auf die Nase. Dieses API Design ist aber nicht gut gelungen um if(bla !=null) Verkettungen zu vermeiden.
*rumprobier einige minuten*
So geht beides:
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event)
{
if (event !=null && event.getKeyCode() == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN)
{
// Log.d(LOG_TAG,"KeyEvent "+event.getKeyCode() +"="+
// event.getAction());
Log.d(LOG_TAG, "Enter Pressed");
return true;
}
else if(actionId == EditorInfo.IME_ACTION_SEARCH) // <-- Kommt aus meinem XML siehe weiter oben im Thread ;)
{
Log.d(LOG_TAG, "Lope Pressed");
return true;
}
return false;
}
});
Wichtig ist das man den Return richtig zurückliefert da ich sonst beide tasten events in der methode bekomme.
Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.