Hallo zusammen,
ich bin absolut neu in der Java/Androidwelt. Erstelle aber schon lange Tools in VBA, VB.net und habe etwas C (Arduino) Erfahrung.
Meine Java "Hallo Welt" ist eine App für einen Barcodescanner der auf der Arbeit in der Warenwirtschaft eingesetzt werden soll.
Ziel ist es Codes zu scannen und Informationen dazu zu erhalten. Die App soll eigentlich nur den Barcode (Zahlenfolge) an einen Server senden und die antwort darstellen. Das serverseitige Programm habe ich schon in VB.net erstellt. Die Kommunikation funktioniert perfekt.
Mein Problem ist im aktuellen Fall, dass ich die Tasten(Auf/ab, links/rechts, enter, P1,P2) auf dem Gerät schon für andere Funktionen der App nutze, wie z.B. in einem Textfeld die Stückzahl durch auf/ab zu erhöhen/reduzieren und mit {Enter} bestätigen.. Sonst haben die Tasten keine weitere Funktion.
Ich habe ein ListView (benutzerdefiniert mit zwei Zeilen) welches beim Scannen gefüllt wird (Server kriegt den Zahlencode, wertet ihn aus und schickt 1-10 zweizeilige Einträge als antwort welche in der ListView angezeigt werden). Funzt alles wie gewollt.
Nun ist das blöde, dass wenn die Liste gefüllt ist und ich die Tasten auf/ab oder Enter auf dem Geät drücke alle Aktionen auf der/dem ListView landen und verarbeitet werden. Heisst wenn ich {ab} drücke, will ich dass in dem unter dem ListView liegenen Textfeld der Zahlwert kleiner wird.
Das mache ich mit
Bei leerer ListView klappt alles wie gewollt.
Bei gefüllter ListView gehe ich mit den auf/ab Tasten die Liste rauf und runter. Mit {enter} wird ein Clickereigniss ausgelöst als hätte man auf dem Display geklickt. Der hier beschriebene Code wird dabei größtenteils solange ignoriert, bis ich mich mit den Tasten ganz nach oben oder unter durchgeklickt habe und es nicht weiter geht. Dann werden die Ereignisse hier ausgelöst. Die Tasten links/rechts werden hier immer erfasst. Auf {enter} wird hier garnicht reagiert.
Frage: gibt es eine Möglichkeit, wie ich einstellen kann, dass ListView auf keine Taste, sondern nur auf Touchclicks reagiert? Das ".setOnItemClickListener" Ereigniss muss aber funktionieren, da ich mit den angeklickten Werten weiter arbeiten will.
Mit der SuFu bin ich weder Google noch hier weiter gekommen.
Danke
ich bin absolut neu in der Java/Androidwelt. Erstelle aber schon lange Tools in VBA, VB.net und habe etwas C (Arduino) Erfahrung.
Meine Java "Hallo Welt" ist eine App für einen Barcodescanner der auf der Arbeit in der Warenwirtschaft eingesetzt werden soll.
Ziel ist es Codes zu scannen und Informationen dazu zu erhalten. Die App soll eigentlich nur den Barcode (Zahlenfolge) an einen Server senden und die antwort darstellen. Das serverseitige Programm habe ich schon in VB.net erstellt. Die Kommunikation funktioniert perfekt.
Mein Problem ist im aktuellen Fall, dass ich die Tasten(Auf/ab, links/rechts, enter, P1,P2) auf dem Gerät schon für andere Funktionen der App nutze, wie z.B. in einem Textfeld die Stückzahl durch auf/ab zu erhöhen/reduzieren und mit {Enter} bestätigen.. Sonst haben die Tasten keine weitere Funktion.
Ich habe ein ListView (benutzerdefiniert mit zwei Zeilen) welches beim Scannen gefüllt wird (Server kriegt den Zahlencode, wertet ihn aus und schickt 1-10 zweizeilige Einträge als antwort welche in der ListView angezeigt werden). Funzt alles wie gewollt.
Nun ist das blöde, dass wenn die Liste gefüllt ist und ich die Tasten auf/ab oder Enter auf dem Geät drücke alle Aktionen auf der/dem ListView landen und verarbeitet werden. Heisst wenn ich {ab} drücke, will ich dass in dem unter dem ListView liegenen Textfeld der Zahlwert kleiner wird.
Das mache ich mit
Java:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_DPAD_UP){
if(StückZahl<999){
VibrateDevice(150);
StückZahl++;
AnzahlEingabe.setText(String.valueOf(StückZahl));
}
}
if(keyCode==KeyEvent.KEYCODE_DPAD_DOWN){
if(StückZahl>0){
VibrateDevice(150);
StückZahl--;
AnzahlEingabe.setText(String.valueOf(StückZahl));
}
}
if(keyCode==KeyEvent.KEYCODE_DPAD_RIGHT){
if(StückZahl<989){
VibrateDevice(150);
StückZahl +=10;
AnzahlEingabe.setText(String.valueOf(StückZahl));
}
}
if(keyCode==KeyEvent.KEYCODE_DPAD_LEFT){
if(StückZahl>9){
VibrateDevice(150);
StückZahl -=10;
AnzahlEingabe.setText(String.valueOf(StückZahl));
}
}
//Buttons: einbuchen / ausbuchen aktivieren
if(keyCode==KeyEvent.KEYCODE_ENTER){
Einbuchen.setEnabled(true);
Ausbuchen.setEnabled(true);
VibrateDevice(150);
}
return false;
}
Bei gefüllter ListView gehe ich mit den auf/ab Tasten die Liste rauf und runter. Mit {enter} wird ein Clickereigniss ausgelöst als hätte man auf dem Display geklickt. Der hier beschriebene Code wird dabei größtenteils solange ignoriert, bis ich mich mit den Tasten ganz nach oben oder unter durchgeklickt habe und es nicht weiter geht. Dann werden die Ereignisse hier ausgelöst. Die Tasten links/rechts werden hier immer erfasst. Auf {enter} wird hier garnicht reagiert.
Frage: gibt es eine Möglichkeit, wie ich einstellen kann, dass ListView auf keine Taste, sondern nur auf Touchclicks reagiert? Das ".setOnItemClickListener" Ereigniss muss aber funktionieren, da ich mit den angeklickten Werten weiter arbeiten will.
Mit der SuFu bin ich weder Google noch hier weiter gekommen.
Danke