in Android Ich kann leicht die ENTER-Zeichen mit der Methode SetOnEditorActionListener erkennen, so dass, wenn ein Barcode in ein Textfeld gescannt wird ich weiß, wenn der gesamte Barcode gelesen wurde.Codename One - Scannen von Barcodes auf neue Zeile/ENTER Zeichen
[Hier ist der Android-Code wie gewünscht:]
scanEditText.setOnEditorActionListener(new TextView.OnEditorActionListener()
{
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event)
{
if ((actionId == EditorInfo.IME_ACTION_DONE) || ((event.getKeyCode() == KeyEvent.KEYCODE_ENTER) && (event.getAction() == KeyEvent.ACTION_DOWN)))
{
System.out.println(" *** ENTER!");
return true;
}
else
return false;
}
});
Ich habe versucht, diese in Codenamen zu replizieren, aber ohne Glück. Ich habe versucht,
- setDoneListener
- addDataChangedListener
- Action auf dem Textfeld und Textbereich
- die keyPressed zwingenden und keyReleased Methoden
aber ohne Freude. Wenn ich ein TextField mit setSingleLineTextArea (false) setze, sehe ich die Barcode-Zeichen in dem Feld, gefolgt von dem, was ich annehme, ist ein neues Zeilenzeichen, da der nächste Scan in einer neuen Zeile erscheint. Keine der aufgelisteten Methoden scheint dieses Ereignis zu erfassen. Wenn ich den Fokus auf eine andere Box ändere, wird das ActionEvent ausgelöst, aber ich möchte nicht jedes Mal den Fokus verschieben müssen.
[Hier ist der Codenameone Code]
gui_searchTextField.setSingleLineTextArea(false);
gui_searchTextField.setDoneListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
Dialog.show("KB", "doneListener " +
gui_searchTextField.getText().trim(), "OK", null);
}
});
gui_searchTextField.addDataChangedListener((evt1, evt2) ->
{
System.out.println("DataChanged " + gui_searchTextField.getText());
});
Also, wie fange ich das Ende des Barcodes wie ich kann einfach im Android SDK?
einige Ihres Codes stellen hier – diegoveloper